常用的正则表达式!!!

一.检验数字的表达式
'''
#一:数字
pat = "^[0-9]*$"

#二:n位的数字
pat = "^\d{n}$"

#三:至少n位数字
pat = "^\d{n,}$"

#四:m-n位数组
pat = "^\d{m,n}$"

#五:零和非零开头的数字:
pat = "(0|[1-9][0-9]*$"

#六:非零开头的最多带两位小数的数字
pat = "^([1-9][1-9]*)+(.[0-9]{0,2})?$"
re_pat6 = re.compile(pat)
print(re_pat6.match("12"))    #12  12.2  12.333 0.25

#七:带1-2位小数的正数或负数
pat = "^(\-)?\d+(\.\d{1,2}?)$"

#八:正数、负数、和小数
pat = "^(\-)?\d+(\.\d+)?$"

#九:有两位小数的正实数
pat = "^[1-9]+(\.\d{2})?$"

#十:有1~3位小数的正实数
pat = "^[1-9]+(\.\d{1,3})?$"

#十一:非零的正整数 :^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
pat = "^[1-9]\d*$"

#十二:非零的负整数:^\-[1-9][]0-9″*$ 或 ^-[1-9]\d*$
pat = "^\-[1-9]\d*$"

#十三:非负整数:^\d+$ 或 ^[1-9]\d*|0$
pat = "^\d+$"

#十四:非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
pat = "^-[1-9]\d*|0$"

#十五:非负浮点数: ^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
pat = "^\d*(\.\d+)?$"

#十六:非正浮点数
pat = "^((-\d+(\.\d+)?)|(0+(\.0+)?))$"

#十七:正浮点数 :^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
pat = "^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$"

#十八:负浮点数 :^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
pat = "^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$"

#十九:浮点数 :^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
pat = "^(-?\d+)(\.\d+)?$"
二.检验字符的表达式


#一:检验汉字
pat = "^[\u4e00-\u9fa5]*$"

#二:英文和数字
pat = "^[a-zA-Z0-9]+$"

#三:长度为3-20的所有字符
pat = "^.{3,20}$"

#四:由26个英文字母组成的字符串
pat = "^[a-zA-Z]+$"

#五:由26个大写英文字母组成的字符串
pat = "^[A-Z]+$"

#六:由26个小写英文字母组成的字符串
pat = "^[a-z]$"

#七:由数字和26个英文字母组成的字符串
pat = "^[0-9a-zA-Z]$"

#八:由数字、26个英文字母或者下划线组成的字符串
pat = "^[0-9a-zA-Z_]$"

#九:中文、英文、数字包括下划线
pat = "^[\u4e00-\u9fa5a-zA-Z0-9_]+$"

#十:中文、英文、数字但不包括下划线等符号
pat = "^[\u4E00-\u9FA5A-Za-z0-9]+$"

#十一:可以输入含有^%&’,;=?$\”等字符:有点东西呀x22是"的ASCII码十六进制
pat = "^[^%&',;=?$\x22]+$"

#十二:禁止输入含有~的字符
pat = "^[^~\x22]$"
三.特殊需要的表达式

#Email地址:
pat = "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"

#域名:
pat = "[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?"

#InternetURL:
pat = "[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"

#电话号码(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、
# ”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):
pat = "^($$\d{3,4}-)|\d{3.4}-)?\d{7,8}$"

#身份证号(15位、18位数字):
pat = "^\d{15}|\d{18}$"

'''
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$

强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> 
(网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)

xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$

IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有用)

IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))

'''

参考了这位博主的博客,地址:http://www.cnblogs.com/cp-miao/p/5567115.html

猜你喜欢

转载自www.cnblogs.com/854594834-YT/p/10527459.html