常用表达式
手机号 (13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8}
邮箱 \w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}
匹配身份证 \d{17}[0-9Xx]|\d{15}
匹配日期(年-月-日) (([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)
匹配时间(时:分:秒) ([01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d
匹配IP(IPV4) \d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3}
正整数 [1-9]\d*
负整数 -[1-9]\d*
中文 [\u4e00-\u9fa5]+
双字节字符(包含中文) [^\x00-\xff]+
电驴链接 ed2k://\|file\|([^\|]+?)\|(\d+?)\|([0-9a-zA-Z]{32})\|((?:/\|sources,([^\s\|]+?)\||h=([0-9a-zA-Z]{32})\||s=([^\s\|]+?)\||p=([^\s\|]+?)\|)*)/
+ 代表前面的字符必须至少出现一次(一次或多次)
* 代表字符可以不出现,也可出现一次或多次
? 代表前面的字符最多只可以出现一次
普通字符
[ABC] 匹配 [...] 中的所有字符,例如 [aeiou] 匹配字符串 "google runoob taobao" 中所有的 e o u a 字母。
[^ABC] 匹配除了 [...] 中字符的所有字符,例如 [^aeiou] 匹配字符串 "google runoob taobao" 中除了 e o u a 字母的所有字母。
[A-Z] [A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。
[\s\S] 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,包括换行。
\w 匹配字母、数字、下划线。等价于 [A-Za-z0-9_]。
非打印字符
\cx 匹配由x指明的控制字符。例如:\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一,否则,将c视为一个原义‘c’字符。
\f 匹配一个换页符,等价于 \x0c 或 \cL。
\n 匹配一个换行符,等价于 \xoa 或 \cJ。
\r 匹配一个回车符,等价于 \x0d 或 \cM。
\s 匹配任何空白字符,包括空格,制表符,换页符等等,等价于 [\f\n\r\t\v]。注意:Unicode正则表达式会匹配全角空格符。
\S 匹配任何非空白字符。等价于[^ \f\n\r\t\v]。
\t 匹配一个制表符,等价于 \x09 或 \cl。
\v 匹配任何一个垂直制表符,等价于 \x0b 或 \ck。
特殊字符
$ 匹配输入字符的结尾位置。
() 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。
. 匹配除 \n 以为任何单字符。
[ 标记一个中括号表达式的开始。
? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
\ 将下一个字符标记为 或特殊字符 或原义字符 或向后引用 或八进制转义符。
^ 匹配输出字符的开始位置,除非在方括号表达式中使用,此时它标识不接受该字符集合。
{ 标记限定符表达式的开始。
| 指明两项之间的一个选择。
限定符
限定符用来指明正则表达式的一个给定组件必须要出现多少次才能满足匹配
* 匹配前面的子表达式零次或多次。例如:zo*能匹配z以及zoo。*等价于{0,}。
+ 匹配前面的子表达式一次或多次。+等价于{1,}。
? 匹配前面的子表达式零次或一次,等价于{0,1}.
{n} n是一个非负整数,匹配确定的n次。
{n,} n是一个非负整数,至少匹配n次。
{n,m} m,n均为非负整数,其中n<m,最少匹配n次,最多匹配m次。
定位符
^ 匹配输入字符串最开始位置。
$ 匹配输入字符串结束的位置。
\b 匹配一个单词的边界,即字与空格间的边界。
\B 非单词边界匹配。