原文:[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