日常工作中经常会遇到的一些验证、匹配、替换等字符串操作都会用到一些常用的正则表达式,如果要用的时候才去构造则会浪费不少时间,所以这里收集了一些常用的,方便日后工作的需要。
用途 |
正则表达式 |
例子 |
备注 |
非负整数 |
^/d+$ ^[1-9]/d*|0$ |
0,1,2 |
正整数 + 0 |
正整数 |
^[0-9]*[1-9][0-9]*$ ^[1-9]/d*$ |
1,2,3 |
|
非正整数 |
^((-/d+)|(0+))$ ^-[1-9]/d*|0$ |
0,-1,-2 |
负整数 + 0 |
负整数 |
^-[0-9]*[1-9][0-9]*$ ^-[1-9]/d*$ |
|
|
整数 |
^-?/d+$ ^-?[1-9]/d*$ |
|
|
非负浮点数 |
^/d+(/./d+)?$ ^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.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+)?))$ ^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.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)$ |
|
|
英文 |
^[A-Za-z]+$ |
|
|
大写英文 |
^[A-Z]+$ |
|
|
小写英文 |
^[a-z]+$ |
|
|
英文和数字 |
^[A-Za-z0-9]+$ |
|
|
英文、数字和下划线 |
^/w+$ |
|
|
Email地址 |
^[/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+)* |
|
|
URL |
^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$ [a-zA-z]+://[^/s]* |
|
|
年-月-日 |
^(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+)? /d{3}-/d{8}|/d{4}-/d{7} (/d{3}-|/d{4}-)?(/d{8}|/d{7})? |
0511-4405222 或 021-87888822 |
|
IP地址 |
^(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+ |
|
|
中文 |
[/u4e00-/u9fa5] |
|
|
全角字符 |
[^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字节,允许字母数字下划线 |
腾讯QQ号 |
[1-9][0-9]{4,} ^[1-9]*[1-9][0-9]*$ |
|
腾讯QQ号从10000开始 |
邮政编码 |
[1-9]/d{5}(?!/d) |
|
|
身份证 |
/d{15}|/d{18} |
|
中国的身份证为15位或18位 |
|
|
|
|
参考:
正则表达式30分钟入门教程