首页 > 代码库 > 正则表达式一些整理

正则表达式一些整理

定义


在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。


常用


\b

单词的开头或结尾,也就是单词的分界处

精确地查找hi这个单词的话,我们应该使用\bhi\b

假如你要找的是hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b


.*

连在一起就意味着任意数量的不包含换行的字符


\d

匹配一位数字(0,或1,或2,或……)


\s

匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等


\w

匹配字母或数字或下划线或汉字等


例子:

\ba\w*\b匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)

\d+匹配1个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次

\b\w{6}\b 匹配刚好6个字符的单词


^匹配字符串的开始
$匹配字符串的结束

^\d{5,12}$

这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配只能不多不少重复2次{5,12}则是重复的次数不能少于5次,不能多于12次,否则都不匹配。


Windows\d+匹配Windows后面跟1个或更多数字

^\w+匹配一行的第一个单词(或整个字符串的第一个单词,具体匹配哪个意思得看选项设置)


[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符


<a[^>]+>匹配用尖括号括起来的以a开头的字符串


a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。


a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)ab(第四到第五个字符)


入门之用,摘自http://deerchao.net/tutorials/regex/regex.htm。