用好正则,可以让很多需要提取数据的工作效益更高。
本文将不定期更新个人收集的常用正则表达式。
匹配空白
\s
匹配手机号
1[0-9]{10}
匹配指定字符的中间值
原数据:您的验证码是"667268"如非本人操作,请忽略本短信
使用以下正则后得到中间的验证码部分。
"([\s\S]*?)"
匹配邮箱地址
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
匹配URL地址
[a-zA-z]+://[^\s]*
匹配QQ号码
[1-9]([0-9]{5,11})
匹配身份证号码
[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}
匹配年月日
([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))
匹配IP地址
(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)