常用的正则表达式

日常工作中经常会遇到的一些验证、匹配、替换等字符串操作都会用到一些常用的正则表达式,如果要用的时候才去构造则会浪费不少时间,所以这里收集了一些常用的,方便日后工作的需要。

用途

正则表达式

例子

备注

非负整数^/d+$0, 1, 2, 03, 00正整数 + 0
 ^[1-9]/d*|0$0, 1, 2比上面的严格
正整数^/d*[1-9]/d*$1, 2, 3, 04 
 ^[1-9]/d*$1, 2, 3比上面的严格
非正整数^((-/d+)|(0+))$0, -1, -2, -03, -00负整数 + 0
 ^-[1-9]/d*|0$0, -1, -2比上面的严格
负整数^-[0-9]*[1-9][0-9]*$  
 ^-[1-9]/d*$  
整数^-?/d+$  
 ^-?[1-9]/d*$  
 ^[-/+]?/d+$  
非负浮点数^/d+(/./d+)?$ 正浮点数 + 0
 ^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0$  
正浮点数^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$  
 ^[1-9]/d*/./d*|0/./d*[1-9]/d*$  
非正浮点数^((-/d+(/./d+)?)|(0+(/.0+)?))$ 负浮点数 + 0
 ^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0$  
负浮点数^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$  
 ^-([1-9]/d*/./d*|0/./d*[1-9]/d*)$  
浮点数^(-?/d+)(/./d+)?$  
 ^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)$  
 ^[-/+]?/d+(/./d+)?$  
英文^[A-Za-z]+$  
大写英文^[A-Z]+$  
小写英文^[a-z]+$  
英文和数字^[A-Za-z0-9]+$  
英文、数字和下划线^/w+$  
中文、英文、数字及下划线^[/u4e00-/u9fa5_a-zA-Z0-9]+$  
Email地址^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$  
 ^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$  
 ^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$  
URL^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$  
 [a-zA-z]+://[^/s]*  
 ^http://([/w-]+/.)+[/w-]+(/[/w-./?%&=]*)?$  
 ^http:[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-&_~`@[/]/':+!]*([^/"/"])*$  
年-月-日^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$  
月/日/年^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$  
电话号码(/d+-)?(/d{4}-?/d{7}|/d{3}-?/d{8}|^/d{7,8})(-/d+)?0511-4405222 或 021-87888822 
 /d{3}-/d{8}|/d{4}-/d{7}  
 (/d{3}-|/d{4}-)?(/d{8}|/d{7})?  
 ^(/(/d{3,4}-)|/d{3.4}-)?/d{7,8}$  
 ^((/(/d{2,3}/))|(/d{3}/-))?(/(0/d{2,3}/)|0/d{2,3}-)?[1-9]/d{6,7}(/-/d{1,4})?$  
手机号码^((/(/d{2,3}/))|(/d{3}/-))?13/d{9}$  
电话区号^0/d{2,3}$  
IP地址^(/d{1,2}|1/d/d|2[0-4]/d|25[0-5]).(/d{1,2}|1/d/d|2[0-4]/d|25[0-5]).(/d{1,2}|1/d/d|2[0-4]/d|25[0-5]).(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])$  
 /d+/./d+/./d+/./d+  
中文[/u4e00-/u9fa5]  
 ^[/u0391-/uFFE5]+$  
全角字符[^uFF00-uFFFF]  
双字节字符[^/x00-/xff] 包括汉字在内
可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
空白行/n[/s| ]*/r 可以用来删除空白行
 /n/s*/r  
HTML标记<(.*)>.*<///1>|<(.*) //> 网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
 <(/S*?)[^>]*>.*?<//1>|<.*? />  
首尾空白字符(^/s*)|(/s*$) 可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
 ^/s*|/s*$  
帐号^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 字母开头,允许5-16字节,允许字母数字下划线
 ^[a-z]/w{3,}$ 需要忽略大小写
密码^[a-zA-Z]/w{5,17}$ 字母开头,长度在6~18之间,只能包含字符、数字和下划线
不安全密码^(([A-Z]*|[a-z]*|/d*|[-_/~!@#/$%/^&/*/./(/)/[/]/{/}/?/'/"]*)|.{0,5})$|/s  
IdCard^/d{15}(/d{2}[A-Za-z0-9])?$  
腾讯QQ号[1-9][0-9]{4,} 腾讯QQ号从10000开始
 ^[1-9]*[1-9][0-9]*$  
 ^[1-9]/d{4,8}$  
邮政编码[1-9]/d{5}(?!/d)  
 ^[1-9]/d{5}$  
身份证^/d{15}|/d{18}|/d{17}[xX]{1}$ 中国的身份证为15位或18位
货币^/d+(/./d+)?$  
数字^[0-9]*$  
 ^/d+$  
n位的数字^/d{n}$  
至少n位的数字^/d{n,}$  
m~n位的数字^/d{m,n}$  
零和非零开头的数字^(0|[1-9][0-9]*)$  
有两位小数的正实数^[0-9]+(.[0-9]{2})?$  
有1~3位小数的正实数^[0-9]+(.[0-9]{1,3})?$  
非零的正整数^/+?[1-9][0-9]*$  
非零的负整数^/-[1-9][]0-9"*$  
长度为3的字符^.{3}$  
含有^%&’,;=?$/"等字符[^%&’,;=?$/x22]+  
12个月^(0?[1-9]|1[0-2])$  
31天^((0?[1-9])|((1|2)[0-9])|30|31)$  
SQL语句^(select|drop|delete|create|update|insert).*$ 需要忽略大小写
提取信息中的网络链接(h|H)(r|R)(e|E)(f|F) *= *('|")?(/w|//|//|/.)+('|"| *|>)?  
提取信息中的邮件地址/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*  
提取信息中的图片链接(s|S)(r|R)(c|C) *= *('|")?(/w|//|//|/.)+('|"| *|>)?  
提取信息中的IP地址(/d+)/.(/d+)/.(/d+)/.(/d+)  
提取信息中的中国手机号码(86)*0*13/d{9}  
提取信息中的中国固定电话号码(/(/d{3,4}/)|/d{3,4}-|/s)?/d{8}  
提取信息中的中国电话号码(/(/d{3,4}/)|/d{3,4}-|/s)?/d{7,14} 包括移动和固定电话
提取信息中的中国邮政编码[1-9]{1}(/d+){5}  
提取信息中的浮点数(即小数)(-?/d*)/.?/d+  
提取信息中的任何数字(-?/d*)(/./d+)?  
    

注意:上表中的各个表达式均来源于网络,还没有经过验证,使用时需进一步验证、修改后使用。包含例子的是经过验证的,可以根据需求进一步修改使用。

参考:

正则表达式30分钟入门教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值