电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

关于正则表达式


发布日期:2020/10/19
 
\

将下一个字符标记为一个特殊字符或一个原义字符或一个 后向引用或一个八进制转义符例如n 匹配字符 n\n 匹配一个换行符序列 \\ 匹配 \\( 则匹配 (

^

匹配输入字符串的开始位置如果设置了 RegExp 对象的 Multiline 属性^ 也匹配 \n\r 之后的位置

$

匹配输入字符串的结束位置如果设置了RegExp 对象的 Multiline 属性$ 也匹配 \n\r 之前的位置

*

匹配前面的子表达式零次或多次例如zo* 能匹配 z 以及 zoo * 等价于{}

+

匹配前面的子表达式一次或多次例如zo+ 能匹配 zo 以及 zoo但不能匹配 z+ 等价于 {}

?

匹配前面的子表达式零次或一次例如do(es)? 可以匹配 dodoes 中的do ? 等价于 {}

{n}

n 是一个非负整数匹配确定的 n 次例如o{} 不能匹配 Bob 中的 o但是能匹配 food 中的两个 o

{n}

n 是一个非负整数至少匹配n 次例如o{} 不能匹配 Bob 中的 o但能匹配 foooood 中的所有 oo{} 等价于 o+o{} 则等价于 o*

{nm}

m 和 n 均为非负整数其中n <= m最少匹配 n 次且最多匹配 m 次 o{} 将匹配 fooooood 中的前三个 oo{} 等价于 o?请注意在逗号和两个数之间不能有空格

?

当该字符紧跟在任何一个其他限制符 (* + ? {n} {n} {nm}) 后面时匹配模式是非贪婪的非贪婪模式尽可能少的匹配所搜索的字符串而默认的贪婪模式则尽可能多的匹配所搜索的字符串例如对于字符串 ooooo+? 将匹配单个 oo+ 将匹配所有 o

匹配除 \n 之外的任何单个字符要匹配包括 \n 在内的任何字符请使用象 [\n] 的模式

(pattern)

匹配pattern 并获取这一匹配所获取的匹配可以从产生的 Matches 集合得到在VBScript 中使用 SubMatches 集合在Visual Basic Scripting Edition 中则使用 $…$ 属性要匹配圆括号字符请使用 \(\)

(?:pattern)

匹配 pattern 但不获取匹配结果也就是说这是一个非获取匹配不进行存储供以后使用这在使用 字符 (|) 来组合一个模式的各个部分是很有用例如 industr(?:y|ies) 就是一个比 industry|industries 更简略的表达式

(?=pattern)

正向预查在任何匹配 pattern 的字符串开始处匹配查找字符串这是一个非获取匹配也就是说该匹配不需要获取供以后使用例如 Windows (?=||NT|) 能匹配 Windows 中的 Windows 但不能匹配 Windows 中的 Windows预查不消耗字符也就是说在一个匹配发生后在最后一次匹配之后立即开始下一次匹配的搜索而不是从包含预查的字符之后开始

(?!pattern)

负向预查在任何不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字符串开始处匹配查找字符串这是一个非获取匹配也就是说该匹配不需要获取供以后使用例如Windows (?!||NT|) 能匹配 Windows 中的 Windows但不能匹配 Windows 中的 Windows预查不消耗字符也就是说在一个匹配发生后在最后一次匹配之后立即开始下一次匹配的搜索而不是从包含预查的字符之后开始

x|y

匹配 x 或 y例如z|food 能匹配 zfood(z|f)ood 则匹配 zoodfood

[xyz]

字符集合匹配所包含的任意一个字符例如 [abc] 可以匹配 plain 中的 a

[^xyz]

负值字符集合匹配未包含的任意字符例如 [^abc] 可以匹配 plain 中的p

[az]

字符范围匹配指定范围内的任意字符例如[az] 可以匹配 az 范围内的任意小写字母字符

[^az]

负值字符范围匹配任何不在指定范围内的任意字符例如[^az] 可以匹配任何不在 az 范围内的任意字符

\b

匹配一个单词边界也就是指单词和空格间的位置例如 er\b 可以匹配never 中的 er但不能匹配 verb 中的 er

\B

匹配非单词边界er\B 能匹配 verb 中的 er但不能匹配 never 中的 er

\cx

匹配由x指明的控制字符例如 \cM 匹配一个 ControlM 或回车符 x 的值必须为 AZ 或 az 之一否则将 c 视为一个原义的 c 字符

\d

匹配一个数字字符等价于 []

\D

匹配一个非数字字符等价于 [^]

\f

匹配一个换页符等价于 \xc 和 \cL

\n

匹配一个换行符等价于 \xa 和 \cJ

\r

匹配一个回车符等价于 \xd 和 \cM

\s

匹配任何空白字符包括空格制表符换页符等等等价于 [ \f\n\r\t\v]

\S

匹配任何非空白字符等价于 [^ \f\n\r\t\v]

\t

匹配一个制表符等价于 \x 和 \cI

\v

匹配一个垂直制表符等价于 \xb 和 \cK

\w

匹配包括下划线的任何单词字符等价于[AZaz_]

\W

匹配任何非单词字符等价于 [^AZaz_]

\xn

匹配 n其中 n 为十六进制转义值十六进制转义值必须为确定的两个数字长例如 \x 匹配 A\x 则等价于 \x & 正则表达式中可以使用 ASCII 编码

\num

匹配 num其中 num 是一个正整数对所获取的匹配的引用例如()\ 匹配两个连续的相同字符

\n

标识一个八进制转义值或一个后向引用如果 \n 之前至少 n 个获取的子表达式则 n 为后向引用否则如果 n 为八进制数字 ()则 n 为一个八进制转义值

\nm

标识一个八进制转义值或一个后向引用如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式则 nm 为后向引用如果 \nm 之前至少有 n 个获取则 n 为一个后跟文字 m 的后向引用如果前面的条件都不满足若 n 和 m 均为八进制数字 ()则 \nm 将匹配八进制转义值 nm

\nml

如果 n 为八进制数字 ()且 m 和 l 均为八进制数字 ()则匹配八进制转义值 nml

\un

匹配 n其中 n 是一个用四个十六进制数字表示的 Unicode 字符例如 \uA 匹配版权符号 (?)

上一篇:在页面方法执行或控件方法执行查找性能瓶颈

下一篇:静态和动态方法调用的区别