正则表达式使用详解3

2009年5月4日星期一

正则表达式使用详解3

为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如:
代码
1./[A-Z]/上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
2./[a-z]/上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
3./[0-9]/上述正则表达式将会与从0到9范围内任何一个数字相匹配。
4./([a-z][A-Z][0-9])+/上述正则表达式将会与任何由字母和数字组成的字符串,如aB0等相匹配。

这里需要提醒用户注意的一点就是可以在正则表达式中使用()把字符串组合在一起。()符号包含的内容必须同时出现在目标对象中。因此,上述正则表达式将无法与诸如abc等的字符串匹配,因为abc中的最后一个字符为字母而非数字。
如果我们希望在正则表达式中实现类似编程逻辑中的或运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符|。例如:/to|too|2/上述正则表达式将会与目标对象中的to,too,或2相匹配。
正则表达式中还有一个较为常用的运算符,即否定符[^]。与我们前文所介绍的定位符^不同,否定符[^]规定目标对象中不能存在模式中所规定的字符串。例如:/[^A-C]/上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当^出现在[]内时就被视做否定运算符;而当^位于[]之外,或没有[]时,则应当被视做定位符。
最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符\。例如:/Th\*/上述正则表达式将会与目标对象中的Th*而非The等相匹配。
在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先级顺序来求值。优先级如下:
代码
1.1.\转义符
2.2.(),(?:),(?=),[]圆括号和方括号
3.3.*,+,?,{n},{n,},{n,m}限定符
4.4.^,$,\anymetacharacter位置和顺序
5.5.|或操作

0 评论:

发表评论