- 前言
- 手机号
- 邮箱
- 车牌号
前言
从日志中提取所需信息时,建议两端加上\W
用于匹配特殊字符,能减少不少误报
\W
:匹配非单词字符,与"[^A-Za-z0-9_]"等效
手机号
手机号共11位,编码格式如下:
- 前3位:网络识别号
- 4至7位:地区编码
- 8至11位:用户号码
我们用下面这个正则,从日志中提取手机号
\W1[3-9]\d{9}\W
-
1[3-9]
:匹配手机号前两位
-
\d{9}
:匹配手机号后9位
虚拟运营商的出现,导致各种手机号段都有。并且2020年之后,中国广电也开始发行新的手机号段了,所以匹配手机号时,不用限制太死,用1[3-9]
匹配前两位即可
邮箱
邮箱正则没什么好说的,就按这个来
\W\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*\W
如果误报比较多的话,可以考虑限定邮箱后缀为常用的域名地址
车牌号
车牌号组成:
- 传统车牌:1-省份简称、2-发牌机关代码、3-7位为号码
- 新能源车牌:1-省份简称、2-发牌机关代码、3-8位为号码
- 新能源小型车:第1位只能是字母D或者F,第2位可以是数字或字母,第3位到第6位必须是数字
- 新能源大型车:第1位到第5位必须是数字,第6位只能是字母D或者F
另外,车牌中不存在字母I、O,防止和数字1、0混淆。
综上,车牌正则如下:
\W(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))\W