python正则表达式

107 阅读2分钟

在线测试工具:regexr-cn.com/
在线练习工具:codejiaonang.com/
[Pp]ython    匹配 “Python” 或 “python”。
rub[ye]    匹配 “ruby” 或 “rube”。
限定符
a*    //a出现0次或多次  ab*c 可以匹配ac /abc /abbbbbbc
a+    //a出现1次或多次
a?    //a出现0次或1次(可有可无) used?  可以匹配use 和used
a{6}    //a出现6次
a{2,6}    //a出现2-6次
a{2,}    //a出现两次以上
或运算符
(a|b)        //匹配a或者b
(ab)|(cd)    //匹配ab或者cd
字符类
[abc]        //匹配a或者b或者c
[a-c]        //匹配a或者b或者c
[a-fA-F0-9]    //匹配小写+大写英文字符以及数字
[^0-9]        //匹配非数字字符
元字符
\d        //匹配数字字符
\D        //匹配非数字字符
\w        //匹配单词字符(英文数字下划线)
\W        //匹配非单词字符
\s        //匹配空白字符(包括换行符、Tab)
\S        //匹配非空白字符
.        //匹配任意字符(换行符除外)
\bword\b    //\b标注字符的边界(全字匹配)
^        //匹配行首
$        //匹配行尾
贪婪/懒惰匹配
<.+>        //默认贪婪匹配“任意字符”
<.+?>        //懒惰匹配“任意字符”
\r是回车符
\n是换行符
\转义字符

匹配邮箱:^[A-Za-z0-9]+@[a-zA-Z0-9]+.(com|cn)$

匹配IPv4 : ^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$

 匹配网址 :(http(s)?:..)?(www)?.[a-z0-9A-Z]\w{0,}.(com|cn|net|pub|top|org)

匹配IPv6:  ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(([azAZ][azAZ][azAZ09\-][azAZ09]))˙([AZaz][AZaz][AZaz09\-][AZaz09])|^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])|^(?:(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])).){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-fA-F]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])).){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})))?::(?:(?:(?:[0-9a-fA-F]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])).){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,1}(?:(?:[0-9a-fA-F]{1,4})))?::(?:(?:(?:[0-9a-fA-F]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])).){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,2}(?:(?:[0-9a-fA-F]{1,4})))?::(?:(?:(?:[0-9a-fA-F]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])).){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,3}(?:(?:[0-9a-fA-F]{1,4})))?::(?:(?:[0-9a-fA-F]{1,4})):)(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])).){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,4}(?:(?:[0-9a-fA-F]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])).){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,5}(?:(?:[0-9a-fA-F]{1,4})))?::)(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,6}(?:(?:[0-9a-fA-F]{1,4})))?::))))$

匹配区号3到4位,电话7到8位的固定电话号码:0\d{2,3}-[1-9]\d{6,7}
匹配11位手机号码:1[0-9]\d{9}

匹配身份证18位
[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]
匹配身份证15位
[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]
匹配中文数字字母
[\u4e00-\u9fa5a-z0-9A-Z]+

账号: 限 6-20 个字,小写字母、数字、下划线、减号组 合,不能以下划线或减号开头

[a-z0-9][\w-]{5,19}

昵称: 限 6-20 个字,汉字、小写字母、数字组合 [\u4e00-\u9fa5a-z0-9]{6,20}

电子邮件: aaa@bbb.ccc 格式 ^[A-Za-z0-9]+@[a-zA-Z0-9]+.[a-z]{2,3}$

QQ: qq 号肯定是数字,至少 5 位,不可能以 0 开头 [1-9]{5,}

密码: 8-20 个字,必须包含小写字母、大些字母、数字、特 殊符号 [a-zA-Z0-9\S]{8,20}

姓名: 限汉字,少数民族人士中点用星号*代替 [\u4e00-\u9fa5]+*[\u4e00-\u9fa5]+

性别: 只能填男或女 男|女

身份证号: 18 位数字,不能以 0 开头,最后一位可以是大写 或小写 x

[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1- 9])|10|20|30|31)\d{3}[0-9Xx]