正则表达式
基本匹配符
\d
-
匹配一个数字
\D
-
与
\d
相反 \w
-
匹配一个字母或数字
\W
-
与
\w
相反 \s
-
可以匹配一个空格(也包括Tab等空白符)
\S
-
与
\s
相反 - 或
-
-
^
-
表示行的开头
-
^\d表示必须以数字开头
$
-
表示行的结束
- \d$表示必须以数字结束
变长匹配
*
-
表示任意个字符(包括0个)
+
-
表示至少一个字符
?
-
表示0个或1个字符
{n}
-
表示n个字符
{n,m}
-
表示n-m个字符
[]
- 表示范围
常用匹配
- 任意字符
-
[\s\S]*
- 可以匹配一个数字、字母或者下划线
-
[0-9a-zA-Z_]
- 匹配中文字符
-
[\u4e00-\u9fa5]
-
注意 必需将字符串 ‘我是字符串’.decode(‘utf-8’) 同时在python2.7 正则式 要 u(‘[正则式]+’)
- 匹配双字节字符(包括汉字在内)
-
[^\x00-\xff]
-
可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
- 匹配空白行
-
\n\s*\r
- 匹配首尾空白字符
-
^\s* \s*$ - 匹配Email地址
-
\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*
- 匹配网址URL
-
[a-zA-z]+://[^\s]*
- 匹配帐号是否合法
-
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
-
字母开头,允许5-16字节,允许字母数字下划线
- 匹配国内电话号码
-
\d{3}-\d{8} \d{4}-\d{7} -
匹配形式如 0511-4405222 或 021-87888822
- 匹配腾讯QQ号
-
[1-9][0-9]{4,}
-
腾讯QQ号从10000开始
- 匹配中国邮政编码
-
[1-9]\d{5}(?!\d)
-
中国邮政编码为6位数字
- 匹配身份证
-
\d{15} \d{18} -
中国的身份证为15位或18位
- 匹配ip地址
- \d+.\d+.\d+.\d+
匹配特定数字
-
^[1-9]\d*$ //匹配正整数
-
^-[1-9]\d*$ //匹配负整数
-
^-?[1-9]\d*$ //匹配整数
-
^[1-9]\d* 0$ //匹配非负整数(正整数 + 0) -
^-[1-9]\d* 0$ //匹配非正整数(负整数 + 0) -
^[1-9]\d.\d 0.\d[1-9]\d$ //匹配正浮点数 -
^-([1-9]\d.\d 0.\d[1-9]\d)$ //匹配负浮点数 -
^-?([1-9]\d.\d 0.\d[1-9]\d 0?.0+ 0)$ //匹配浮点数 -
^[1-9]\d.\d 0.\d[1-9]\d 0?.0+ 0$ //匹配非负浮点数(正浮点数 + 0) -
^(-([1-9]\d.\d 0.\d[1-9]\d)) 0?.0+ 0$ //匹配非正浮点数(负浮点数 + 0)
匹配特定字符串
-
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
-
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
-
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
-
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
-
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串