1、可选元素,元字符[?]代表可选项,把它加在一个字符后面,表示此处容许出现前面的字符,不过它的出现并非匹配成功的必要条件。例如如果要匹配出color和colour,表达式为(colou?r)。July fourth,其中July可以写作Jul,而日期fourth可以写4th或者4,我们可以用(July|Jul).(fourth|4th|4),如果采用可选元素可以写为(July?).(fourth|4th|4)
2、其他量词:重复出现,[+]及[*]的作用与问号类似。元字符[+]表示之前紧邻的元素出现一次或者多次;而[*]表示之前紧邻的元素出现任意多次,或者不出现。问号、加号、星号这个3个元字符统称为量词,他们限定了所作用元素的匹配次数。例如:[*?]匹配一个可能出现的空格,[.*]可以匹配任意多个空格,可以不是空格,没有要求是必须。
+:出现一次及无数次,至少一次
*出现无数次,也可以不出现,任意次数均可
?可以不出现,也可以只出现一次,单次可选
3、规定重现次数的范围:区间,使用元字符序列来自定义重现次数的区间[...{min,max}]
4、括号及反向引用,括号目前的两种用途(现在多选项的范围,将若干字符组合为一个单元,受量词作用),括号还有另外一种不常见用法(能够记住他们包含的子表达式匹配的文本)。
如果我们要提取[\<the.+ the\>]可以写为[\<([A-Za-z]+).+\1\>]其中[\1]能匹配到[the]并记忆该子表达式匹配的文本。
5、转义:[.]元字符本身可以匹配任何字符,包括空格。真正匹配文本中点号的元序列应该是反斜线加点的组合:[ega\.att\.com],我们把这种叫做“转义的点号”或者“转义的句号”,反斜线我们称为“转义符”,作用是使反斜线后的元字符失去特殊含义成普通字符。