Python实战:常用正则表达式汇总
- 一、邮箱校验
- 二、多邮箱校验
- 三、网址校验
- 四、手机号校验
- 五、IP地址校验
- 六、文件路径和扩展名校验
- 七、用户密码校验
- 八、Html颜色值校验
- 九、日期校验
- 十、抽取页面的图片标签
- 十一、身份证校验
- 十二、金额校验
- 十三、金额转换千分位分隔符
- 十四、匹配车牌号
- 十五、匹配火车车次的
一、邮箱校验
邮箱的登录规则如下:登录名@主机名.域名
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
二、多邮箱校验
多个邮箱连接,以英文分号进行分割
^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$
三、网址校验
已http格式为例:
^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
四、手机号校验
国内 13、15、18开头的手机号正则表达式
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
五、IP地址校验
IP-v4地址校验
\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
IP-v6地址校验
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
六、文件路径和扩展名校验
以txt文件扩展名为例
^([a-zA-Z]\\:|\\\\)\\\\([^\\]+\\)*[^\\/:*?"<>|]+\\.txt(l)?$
七、用户密码校验
密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
八、Html颜色值校验
- 颜色值由十六进制来表示红、绿、蓝(RGB)。
- 每个颜色的最低值为 0(十六进制为 00),最高值为 255(十六进制为FF)。
- 十六进制值的写法为 # 号后跟三个或六个十六进制字符。
- 三位数表示法为:#RGB,转换为6位数表示为:#RRGGBB。
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
九、日期校验
匹配十二小时制时间格式
^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$
匹配二十四小时制时间格式
^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$
十、抽取页面的图片标签
\\< *[img][^\\>]*[src] *= *[\\"\']{0,1}([^\\"\'\ >]*)
十一、身份证校验
15位身份证校验
^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$
18为身份证校验
^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$
十二、金额校验
金额为小数,精确到小数点后2位
/^[0-9]+(.[0-9]{2})?$/
十三、金额转换千分位分隔符
return total.toString().replace(/\B(?=(\d{3})+$)/g, ',');
十四、匹配车牌号
匹配普通车辆
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$
匹配新能源车量
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))$
十五、匹配火车车次的
[GCDZTSPKXLY1-9]\d{1,4}$