. |
匹配单个任意字符 |
可以匹配:tno,t#o,teo等等。不可以匹配:tnno,to,Tno,t正o等 |
[] |
只有方括号里面指定的字符才参与匹配,也只能匹配单个字符 |
t[abcd]n 只可以匹配:tan,tbn,tcn,tdn。不可以匹配:thn,tabn,tn等 |
| |
相当与“或”,可以匹配指定的字符,但是也只能选择其中一项进行匹配 |
t(a|b|c|dd)n 只可以匹配:tan,tbn,tcn,tddn。不可以匹配taan,tn,tabcn等。 |
|
|
限定符
限定符后边添加一个?表示非贪婪模式(最小匹配)
* |
0次或者多次 |
+ |
1次或者多次,等价于{1,} |
? |
0次或者1次,等价于{0,1} |
{n} |
恰好n次 |
{n,} |
至少匹配n次 |
{n,m} |
从n次到m次 |
|
- |
标识一个范围 |
\ |
标识下一个字符标记为特殊字符、或者一个原意字符、或一个向后引用、或一个八进制转义符 |
^ |
1 匹配字符串开始的位置; 2 表示否,如果在[]内,表示不想匹配的字符 |
$ |
匹配输入字符串结束的位置; |
\S |
[^\t\n\r\f],非空字符 |
\s |
[\t\n\r\f],空字符(只可以匹配一个空格、制表符、回车符、换页符;不可以匹配自己输入的多个空格) |
\r |
空格符,与\n、\tab相同 |
\d |
[0-9] |
\D |
[^0-9] ,不能是0-9 |
\w |
[0-9A-Z_a-z],匹配包括下划线的任何单词字符 |
\W |
[^0-9A-Z_a-z] |
\b |
匹配一个单词边界,也就是指单词和空格间的位置 |
\B |
匹配非单词边界 |
|
|
(pattern) |
匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 ‘\(‘ 或 ‘\)’。 |
(?:pattern) |
匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或” 字符 (|) 来组合一个模式的各个部分是很有用。例如, ‘industr(?:y|ies) 就是一个比 ‘industry|industries’ 更简略的表达式。 |
(?=pattern) |
正向肯定预查(look ahead positive assert),在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,”Windows(?=95|98|NT|2000)”能匹配”Windows2000”中的”Windows”,但不能匹配”Windows3.1”中的”Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
(?!pattern) |
正向否定预查(negative assert),在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如”Windows(?!95|98|NT|2000)”能匹配”Windows3.1”中的”Windows”,但不能匹配”Windows2000”中的”Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
(?<=pattern) |
反向(look behind)肯定预查,与正向肯定预查类似,只是方向相反。例如,”(?<=95|98|NT|2000)Windows”能匹配”2000Windows”中的”Windows”,但不能匹配”3.1Windows”中的”Windows”。 |
(?<!pattern) |
反向否定预查,与正向否定预查类似,只是方向相反。例如”(?<!95|98|NT|2000)Windows”能匹配”3.1Windows”中的”Windows”,但不能匹配”2000Windows”中的”Windows”。 |