常用正则表达式,常用的正则表达式

日常工作中经常会遇到的一些验证、匹配、替换等字符串操作都会用到一些常用的正则表达式,如果要用的时候才去构造则会浪费不少时间,所以这里收集了一些常用的,方便日后工作的需要。
用途
正则表达式
例子
备注
非负整数 ^\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}.[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{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}|\d{17}[xX]{1}   中国的身份证为15位或18位
       
参考:
正则表达式30分钟入门教程
Tags:  正则表达式空格 正则表达式语法 js正则表达式 正则表达式 常用正则表达式

延伸阅读

最新评论

发表评论