;Windows 98, Windows NT, Windows 2000 仅匹配\"Windows NT\"中的\"Windows \"
解释:匹配\"Windows \",后面必须是字符\"NT\"或者\"XP\"
lookahead (\\w)((?=\\1\\1\\1)(\\1))+ aaa ffffff 999999999 匹配6个\"f\"的前4个以及9个\"9\"的前7个
解释:以6个f的地方为例,第一个f匹配(\\w)。接下来是一个子表达式((?=\\1\\1\\1)(\\1)),需要出现1次以上。这个子表达式由两个部分组成,第一部分(?=\\1\\1\\1)是一个lookahead,可以把它跟最后那个(\\1)放在在一起考虑,所以对于第4个f,能够匹配(\\1),也满足它的前面一个位置(第三个f)后面还有三个f(第4、5、6三个)
lookahead do(?!\\w) done, do, dog 只匹配\"do,\"这个位置上的\"do\"
解释:匹配\"do\",后面不能有任何[a-zA-Z0-9_]这些字符
lookbehind (?<=\\d{4})\\d+(?=\\d{4}) 1234567890123456 \"56789012\"
Options(正则表达式选项)
JavaScript的正则表达式,使用/gi这样的开关控制正则表达式选项 。.Net中可以使用RegexOptions枚举进行全局设置,可以在分组表达式中使用(?imnsx-imnsx:patterns)方式,在这个分组内开启或禁用某些选项,也可以在表达式的中间使用(?imnsx-imnsx),从中间这个位置开始开启或禁用某些选项。全局RegexOptions的优先级低于嵌入方式。
嵌入方式中imnsx表示打开某种选项或选项的组合,前面添加减号\"-\"表示关闭这些选项。例如(?ix-ms)表示从这个位置开始,打开IgnoreCase、IgnorePatternWhiteSpace选项,关闭Multiline、Singleline选项。 [Page]
嵌入方式修改正则表达式选项,也叫做Modifier。
RegexOption member Inline character Description
None N/A Specifies that no options are set.
IgnoreCase i 匹配过程中忽略大小写因素
Multiline m 在Multiline模式下,^和$分别匹配每一行的开始和结束位置;否则将分别匹配整个文本串的开始和结束位置
ExplicitCapture n 匹配过程中不捕获任何匿名分组,相当于在表达式中对所有匿名分组使用(?:)
Compiled N/A 将正则表达式预编译到assembly中,提高匹配性能
Singleline s 也就是DOTALL模式的开关,打开Sigleline开关,.将匹配任何一个字符,否则.只匹配换行符以外的字符
IgnorePatternWhitespace x 忽略表达式中没有转义的空白字符(\\s),并开启单个未#符号的注释方式
这个选项开启后,表达式中从未转义的#符号开始,到这一行的结束位置都作为注释对待
表达式中另外一种注释方式为(#your comments),只有括号里面的部分才是注释内容
RightToLeft N/A 对输入字符集的默认扫描方向为从左至右,该选项将扫描方向修改为从右至左
该选项只是改变了对输入字符集的扫描方向,它并不会改变表达式对子文本串的匹配方向,lookahead、 lookbehind的方向也不会改变,lookahead仍然向右搜索,lookbehind仍然向左搜索
ECMAScript N/A
CultureInvariant N/A&n