常用正则表达式

前言

第一篇博客。只是打算写一些基础的东西,最近看了Andrew Koenig的《C陷阱与缺陷》,虽然是很老的一本书(一篇文章?),但是看的过程中还是发现了很多问题。比如发现了因为自己很久没写C语言的代码,基础变得薄弱了不少。比如发现自己的想法还是很狭隘之类的。总之就是笨。。。
在《C陷阱与缺陷》中,提出了这样一个问题:
怎样判断C语言是否支持嵌套注释?
答案是这样的:

//支持嵌套注释则为1,不支持则为0*1
int flag = /*/*0*/**/1;

最近要面试之类的,因此需要恶补基础知识了。革命尚未成功,同志仍需努力啊。

正文

正则表达式大同小异(小异也很少有)。下面是用ruby使用的正则,要换成其它语言的话把两边的//改成”“就行了。遵循着SAAS与SOA思想,都十分接地气。。
PS 我真是二。。居然手打这些玩意。。


/Mrs?\.?/                       #匹配"Mr", "Mrs", "Mr.", "Mrs."
/a+c/                           #匹配"abc", "abbdrec"
/[a-zA-z]+://[^\s]*/            #匹配网址
/^-?([1-9][0-9]*)+(.[0-9]*)?$/  #匹配非0开头的实数
/^-?0(.[0-9]*)?$/               #匹配0开头的实数

#匹配IPV4地址。可以在后加/b或者$以严格限制,否则192.168.1.256这种会被识别为192.168.1.25
/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
#电子邮件Email
/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
#QQ号码
/[1-9]\d{4,}/
#html标记(包含内容或自闭和)
/<(.*)(.*)>.*<\/\1>|<(.*)\/>/
#日期普适版(年-月-日):最后那个括号一定要写在最后面,不然匹配比如04-19的时候,会匹配到04-1
/(\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-(([12]{1}[1-9]{1})|(3([01]{1})|(0?[1-9])|))/
#日期豪华加长版(年-月-日):这个超级复杂。。考虑了闰年大小月等各种情况。。七千年内应该都适用。。
/^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/
#时间(时:分:秒)
/((1|0?)[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])/
#电话/手机
/((\d{4}-|\d{3}-)?(\d{8}|\d{7}))|(1\d{10})/
#身份证(15/18位)
/\d{15}(\d\d[0-9xX])?/
#中文字符
/[\u4e00-\u9fa5]*/
#全角字符
/[\uff00-\uffff]*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值