您的位置:首页 > 其它

工作中常用的正则表达式总结

2017-04-16 20:19 337 查看
  


在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。就当作笔记

1.基础

\d 匹配一个数字字符。等价于[0-9]。grep 要加上-P,perl正则支持 
\D 匹配一个非数字字符。等价于[^0-9]。grep要加上-P,perl正则支持 
\f 匹配一个换页符。等价于\x0c和\cL。 
\n 匹配一个换行符。等价于\x0a和\cJ。 
\r 匹配一个回车符。等价于\x0d和\cM。 
\s 匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 
\S 匹配任何可见字符。等价于[^ \f\n\r\t\v]。 
\t 匹配一个制表符。等价于\x09和\cI。 
\v 匹配一个垂直制表符。等价于\x0b和\cK。 
\w 匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的”单词”字符使用Unicode字符集。 
\W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。 
\xn 匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“\x41”匹配“A”。“\x041”则等价于“\x04&1”。正则表达式中可以使用ASCII编码。 
\num 匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,“(.)\1”匹配两个连续的相同字符。 
\n 标识一个八进制转义值或一个向后引用。如果\n之前至少n个获取的子表达式,则n为向后引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。 
\nm 标识一个八进制转义值或一个向后引用。如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。 
\nml 如果n为八进制数字(0-7),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。 
\un 匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。

2.常用

^[0-9]*$ 数字 
^\d{m,n}$ m-n位的数字 
^[0-9]+(.[0-9]{2})?$ 有两位小数的正实数 
^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ 浮点数 
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$ 手机号码 
/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/ Email地址 
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.? 域名 
[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ URL 
^\d{15}|\d{18}$ 身份证号(15位、18位数字) 
^\d{4}-\d{1,2}-\d{1,2} 日期格式 
[\u4e00-\u9fa5] 中文字符的正则表达式 
^[ァ-ヶー]{1,45}$日语的正则表达式 
/x3130-/x318F (韩文 
/xAC00-/xD7A3 (韩文) 
[1-9][0-9]{4,} 腾讯QQ号 
[1-9]\d{5}(?!\d) 中国邮政编码 
^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$ IP地址 
^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$ xml文件 
^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$正浮点数 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息