正则表达式1

正则表达式

7.1、在JavaScript中,正则表达式是对Perl版的改进和发展。

7.2、^表示一个字符串的开始,$表示一个字符串的结束。

7.3、(?:...)表示一个非捕获型分组(noncapturinggroup)。

7.4、(...)表示一个捕获型分组(capturinggroup)。

7.5、[...]表示一个字符类,[^?#]表示一个字符类包含除?和#之外的所有字符。

7.6、有两个方法来创建RegExp对象。优先采用正则表达式字面量。如下:

varmy_regexp=/"(?:\\.|[^\\\"])*"/g;但如果要使用RegExp构造器创建一个正则表达式,要多加小心,因为反斜杠在正则表达式和在字符串字面量中有不同的含义。通常需要双写反斜杠及对引号进行转义:

varmy_regexp=newRegExp("\"(?:\\.|[^\\\\\\\"])*\"",'g');7.7、在RegExp中,有三个标志:g、i和m。7.8、RegExp对象的属性

属性用法

global如果标志g被使用,值为true

ignoreCase如果标志i被使用,值为true

lastIndex下一次exec匹配开始的索引。初始值为0

multiline如果m被使用,值为true

source正则表达式源代码文本

7.9、一个正则表达式因子可以是一个字符、一个由圆括号包围的组、一个字符类,或者是一个转义序列。除了控制字符和特殊字符以外,所有的字符都将被按照字面处理:

\/[](){}?+*|.^$

如果上面列出的字符按字面去【匹配,那么必须要一个\前缀来进行转移。

7.10、正则表达式转义:

\f是换页符,\n是换行符,\r是回车符,\t是制表符,\u允许指定一个Unicode字符来表示一个十六进制的常量

\d等同于[0-9]

\s等同于[\f\n\r\t\u000B\u0020\u00A0\u2028\u2029]。这是Unicode空白符的一个不完全子集。\S表示与其相反的:[^\f\n\r\t\u000B\u0020\u00A0\u2028\u2029]

\w等同于[0-9A-Z_a-z]。\W则表示与其相反。

\b被指定为一个字的边界标志。

\1是指分组1所捕获到的文本的一个引用,\2指向分组2的引用,\3指向分组3的引用,以此类推。

7.11、正则表达式分组共有47.12、正则表达式字符类内部的转义规则和正则表达式因子相比稍有不同。[\b]是退格符。下面是在字符类中需要被转义的特殊字符:

-/[\]^

7.13、正则表达式因子可以用一个正则表达式量词后缀,用来决定这个因子应该被匹配的次数。包围在一对花括号中的一个数字表示这个因子应该被匹配的次数。所以,/www/和/w{3}/等价。{3,6}将【匹配3、4、5或6次。{3,}匹配3次或更多次。

7.14、?等同于{0,1}。*等同于{0,}+则等同于{1,}。

7.15、如果只有一个量词,则趋向于进行贪婪性的匹配,即匹配尽可能多的重复直至达到上限。如果这个量词还有一个额外的后缀?,那么则趋向于进行懒惰性匹配,即试图匹配尽可

能少的必要重复。总结:本章对正则略感并未深入,关于“捕获分组”即点到为止,也未触及“零宽断言”的概念(一个使用零宽断言的例子——《不包含字符串abc的正则表达式》)。《正则表达式30分钟入门教程》言简意赅地丰富并弥补了这些不足。


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn