正则表达式(万变不离其宗)

2009年4月30日星期四

正则表达式(万变不离其宗)

在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式testing中没有包含任何元字符,,它可以匹配testing和123testing等字符串,但是不能匹配Testing。
要想真正的用好正则表达式,正确的理解元字符是最重要的事情。下表列出了所有的元字符和对它们的一个简短的描述。
元字符描述
.
匹配任何单个字符。例如正则表达式r.t匹配这些字符串:rat、rut、rt,但是不匹配root。
$
匹配行结束符。例如正则表达式weasel$能够匹配字符串He'saweasel的末尾,但是不能匹配字符串Theyareabunchofweasels.。
^
匹配一行的开始。例如正则表达式^Whenin能够匹配字符串WheninthecourSEOfhumanevents的开始,但是不能匹配WhatandWheninthe。
*
匹配0或多个正好在它之前的那个字符。例如正则表达式.*意味着能够匹配任意数量的任何字符。
\
这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配。例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符。
[]
[c1-c2]
[^c1-c2]
匹配括号中的任何一个字符。例如正则表达式r[aou]t匹配rat、rot和rut,但是不匹配ret。可以在括号中使用连字符-来指定字符的区间,例如正则表达式[0-9]可以匹配任何数字字符;还可以制定多个区间,例如正则表达式[A-Za-z]可以匹配任何大小写字母。另一个重要的用法是排除,要想匹配除了指定区间之外的字符也就是所谓的补集在左边的括号和第一个字符之间使用^字符,例如正则表达式[^269A-Z]将匹配除了2、6、9和所有大写字母之外的任何字符。
\\
匹配词(word)的开始(\)和结束(\)。例如正则表达式\the能够匹配字符串forthewise中的the,但是不能匹配字符串otherwise中的the。注意:这个元字符不是所有的软件都支持的。
\(\)
将\(和\)之间的表达式定义为组(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用到的符号来引用。
|
将两个匹配条件进行逻辑或(Or)运算。例如正则表达式(him|her)匹配itbelongstohim和itbelongstoher,但是不能匹配itbelongstothem.。注意:这个元字符不是所有的软件都支持的。
+
匹配1或多个正好在它之前的那个字符。例如正则表达式9+匹配9、99、999等。注意:这个元字符不是所有的软件都支持的。
?
匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。
\{i\}
\{i,j\}

0 评论:

发表评论