正则表达式的元字符一次一般只能匹配一个位置或一个字符,如果要匹配零个或一个或多个字符时,则需要使用限定符。限定符用于指定允许特定字符或字符集自身重复出现的次数。如{n}表示重复n次、{n,}表示重复至少n次、{n,m}表示重复至少n次,最多m次。常用限定符的说明如表2-5所示。
表2-5 常用限定符
字符或表达式 | 说明 |
{n} | 重复n次。 |
{n,} | 重复至少n次。 |
{n,m} | 重复至少n次,最多m次。 |
* | 重复至少0次,等同于{0,}。 |
+ | 重复至少1次,等同于{1,}。 |
? | 重复0次或1次,等同于{0,1}。 |
*? | 尽可能少地使用重复的第一个匹配。 |
+? | 尽可能少地使用重复但至少使用一次。 |
?? | 使用零次重复(如有可能)或一次重复。 |
{n}? | 等同于{n}。 |
{n,}? | 尽可能少地使用重复但至少使用n次。 |
{n,m}? | 介于n次和m次之间、尽可能少地使用重复。 |
以下正则表达式可以匹配字符串“color”或者“colour”。表达式u?表示字母“u”可以出现1次或者不出现。
colou?r (36)
以下正则表达式可以匹配字符串“four”或者“for”。表达式u?表示字母“u”可以出现1次或者不出现。
fou?r (37)
以下正则表达式匹配以字符串“name”开头的、以数字字符串结尾的字符串。其中,表达式/d+可以匹配长度至少为1的数字字符串。
/bname/d+/b (38)
以下正则表达式匹配被尖括号括起来的、以字符串“asp:TextBox ”(最后一个字符是空格)开头的字符串。正则表达式<asp:TextBox [^>]+>中的字符类[^>]匹配除了尖括号“>”之外的任何字符。
<asp:TextBox [^>]+> (39)
以下正则表达式匹配以字母a开头的单词。/w匹配一个单词字符,/w*表示该单词字符可以重复零次或多次。
/ba/w*/b (40)