且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

正则表达式教程 (1)

更新时间:2022-09-18 17:33:27

原文:[url]http://www.regular-expressions.info/characters.html[/url]
 
字面字符
 
最基本的正则表达式是由一个单个的字面字符构成,例如 a 他将匹配字符串中该字符的首次出现。如果字符串是Jack is a boy,这将匹配J后面的a字符.虽然a在单词中间是事实,但正则表达式引擎不管这些。如果你比较在意这个,就需要告诉正则表达式引擎使用单词边界,后面我们会介绍这个。
这正则表达式也可以匹配的第二次出现的a。它只会在你告知的情况下搜索整个字符串寻找第一次匹配之后的情况。在文字编辑器,你可以这样做利用其“查找下一个”或“搜索前进”的功能。在一种编程语言中,通常有一个单独的功能,您可以调用继续搜索上次匹配后的结果。
同样,正则表达式cat匹配About cats and dogs中的cat。这正则表达式包括一系列的三个字面字符。这就好比对正则表达式引擎说:查找c,紧接着一个a,紧接着t
请注意,正则表达式引擎默认是区分大小写的。cat不匹配Cat,除非你告诉正则表达式引擎忽略大小写。
 
译注:字面值指的是字母,数字,下划线,各国语言字符,和下面要介绍的没有特殊意义的标点字符。
 
特殊字符
 
因为我们不想仅仅搜索一段字面文本,我们需要保留一定字符用作特殊使用。在regex flavors discussed in this tutorial教程中,有11个字符具有特殊含义:他们是[\^$.|?*+()这些特殊字符叫做元字符。
如果想使用这些字符用作字母值,需要使用转义符\如果想匹配1+1=2,正确的是1\+1=2.否则,+将具有特殊意义。
如果你忘记了转义且把这些字符用在了不正确的位置,那么会得到一个错误信息。
大部分表达式把{看作字面值,除非是重复操作类似{1,3}的一部分。所以通常不必转义,虽然你可以这么做。有个例外是:java.util.regex包,它要求所有字母括号都要转义。
所有其他字符不要转义,因为\也是特殊符号。\和一些字面字符在一起可能有其他意义:例如\d匹配0-9




本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/101906,如需转载请自行联系原作者