日常工作中经常会遇到的一些验证、匹配、替换等字符串操作都会用到一些常用的正则表达式,如果要用的时候才去构造则会浪费不少时间,所以这里收集了一些常用的,方便日后工作的需要。@H_301_2@
用途@H_301_2@ |
正则表达式@H_301_2@ |
例子@H_301_2@ |
备注@H_301_2@ |
非负整数@H_301_2@ | ^/d+$ ^[1-9]/d*|0$@H_301_2@ |
0,1,2@H_301_2@ | 正整数 + 0@H_301_2@ |
正整数@H_301_2@ | ^[0-9]*[1-9][0-9]*$ ^[1-9]/d*$@H_301_2@ |
1,2,3@H_301_2@ | @H_301_2@ |
非正整数@H_301_2@ | ^((-/d+)|(0+))$ ^-[1-9]/d*|0$@H_301_2@ |
0,-1,-2@H_301_2@ | 负整数 + 0@H_301_2@ |
负整数@H_301_2@ | ^-[0-9]*[1-9][0-9]*$ ^-[1-9]/d*$@H_301_2@ |
@H_301_2@ | @H_301_2@ |
整数@H_301_2@ | ^-?/d+$ ^-?[1-9]/d*$@H_301_2@ |
@H_301_2@ | @H_301_2@ |
非负浮点数@H_301_2@ | ^/d+(/./d+)?$ ^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0$@H_301_2@ |
@H_301_2@ | 正浮点数 + 0@H_301_2@ |
正浮点数@H_301_2@ | ^(([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*$@H_301_2@ |
@H_301_2@ | @H_301_2@ |
非正浮点数@H_301_2@ | ^((-/d+(/./d+)?)|(0+(/.0+)?))$ ^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0$@H_301_2@ |
@H_301_2@ | 负浮点数 + 0@H_301_2@ |
负浮点数@H_301_2@ | ^(-(([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*)$@H_301_2@ |
@H_301_2@ | @H_301_2@ |
浮点数@H_301_2@ | ^(-?/d+)(/./d+)?$ ^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)$@H_301_2@ |
@H_301_2@ | @H_301_2@ |
英文@H_301_2@ | ^[A-Za-z]+$@H_301_2@ | @H_301_2@ | @H_301_2@ |
大写英文@H_301_2@ | ^[A-Z]+$@H_301_2@ | @H_301_2@ | @H_301_2@ |
小写英文@H_301_2@ | ^[a-z]+$@H_301_2@ | @H_301_2@ | @H_301_2@ |
英文和数字@H_301_2@ | ^[A-Za-z0-9]+$@H_301_2@ | @H_301_2@ | @H_301_2@ |
英文、数字和下划线@H_301_2@ | ^/w+$@H_301_2@ | @H_301_2@ | @H_301_2@ |
Email地址@H_301_2@ | ^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$ ^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$ /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*@H_301_2@ |
@H_301_2@ | @H_301_2@ |
URL@H_301_2@ | ^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$ [a-zA-z]+://[^/s]*@H_301_2@ |
@H_301_2@ | @H_301_2@ |
年-月-日@H_301_2@ | ^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$@H_301_2@ | @H_301_2@ | @H_301_2@ |
月/日/年@H_301_2@ | ^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$@H_301_2@ | @H_301_2@ | @H_301_2@ |
电话号码@H_301_2@ | (d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)? /d{3}-/d{8}|/d{4}-/d{7} (/d{3}-|/d{4}-)?(/d{8}|/d{7})?@H_301_2@ |
0511-4405222 或 021-87888822@H_301_2@ | @H_301_2@ |
IP地址@H_301_2@ | ^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$ /d+/./d+/./d+/./d+@H_301_2@ |
@H_301_2@ | @H_301_2@ |
中文@H_301_2@ | [/u4e00-/u9fa5]@H_301_2@ | @H_301_2@ | @H_301_2@ |
全角字符@H_301_2@ | [^uFF00-uFFFF]@H_301_2@ | @H_301_2@ | @H_301_2@ |
双字节字符@H_301_2@ | [^/x00-/xff]@H_301_2@ | @H_301_2@ | 包括汉字在内 可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)@H_301_2@ |
@H_301_2@ | @H_301_2@ | @H_301_2@ | @H_301_2@ |
空白行@H_301_2@ | /n[/s| ]*/r /n/s*/r@H_301_2@ |
@H_301_2@ | 可以用来删除空白行@H_301_2@ |
HTML标记@H_301_2@ | <(.*)>.*<///1>|<(.*) //> <(/S*?)[^>]*>.*?<//1>|<.*? />@H_301_2@ |
@H_301_2@ | 网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力@H_301_2@ |
首尾空白字符@H_301_2@ | (^/s*)|(/s*$) ^/s*|/s*$@H_301_2@ |
@H_301_2@ | 可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式@H_301_2@ |
帐号@H_301_2@ | ^[a-zA-Z][a-zA-Z0-9_]{4,15}$@H_301_2@ | @H_301_2@ | 字母开头,允许5-16字节,允许字母数字下划线@H_301_2@ |
腾讯QQ号@H_301_2@ | [1-9][0-9]{4,} ^[1-9]*[1-9][0-9]*$@H_301_2@ |
@H_301_2@ | 腾讯QQ号从10000开始@H_301_2@ |
邮政编码@H_301_2@ | [1-9]/d{5}(?!/d)@H_301_2@ | @H_301_2@ | @H_301_2@ |
身份证@H_301_2@ | /d{15}|/d{18}@H_301_2@ | @H_301_2@ | 中国的身份证为15位或18位@H_301_2@ |