常用的正则表达式!!!
Posted 854594834-yt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用的正则表达式!!!相关的知识,希望对你有一定的参考价值。
一.检验数字的表达式
‘‘‘
#一:数字
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