经常用到的一些正则表达式的匹配规则,从网上整理了一下:大概有以下:
元字符
元字符如下:
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
常用反义元字符
代码 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
说明1:以上元字符在正则表达中写法要多加一个\,比如\w要写成\\w
说明2:因为˖是表示任意字符,如果要匹配˖本身,需要用\\˖表示。
元字符还有另外一种形式:
在正则表达式中可以用方括号括起若干字符来表示一个元字符。
[abc]:代表abc中的任何一个
[^abc]:代表abc以外的任何字符
[a-zA-Z]:代表英文字母中的任何一个
另外,中括号里允许嵌套中括号,可以进行并交差运算,例如:
[a-d[m-p]]:代表a-d,或m-p中的任何字符(并);
[a-z&&[def]]:代表def中的任何一个字符(交);
如果这两种形式的元字符没有加任何限定出现次数的修饰符,表示元字符描述的范围中某一字符必须且最多出现一次。
比如:[abc]与字符串a或字符串b或字符串c匹配都为真,与字符串ab匹配则为假,与空字符串匹配也为假。
限定修饰符
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
1 数字:^[0-9]*$
2 n位的数字:^\d{n}$
3 至少n位的数字:^\d{n,}$
4 m-n位的数字:^\d{m,n}$
5 零和非零开头的数字:^(0|[1-9][0-9]*)$
6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
9 有