常用的正则表达式(转)

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

用途

正则表达式

例子

备注

非负整数 ^/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}   中国的身份证为15位或18位
       

参考:

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值