正则表达式练习
1、匹配整数或者小数(包括正数和负数) # ret=re.findall('-?\d+(?:.\d+)?','3132.3') # # print(ret) 2、匹配年月日日期 格式2018-12-6 # ret=re.findall('[1-9]\d{0,3}-(?:1[0-2]|0?[1-9])-(?:3[01]|[12]\d|0?[1-9])','2018-12-6') # print(ret) 3、匹配qq号 # ret =re.findall('[1-9]\d{4,11}','13123123') # print(ret) 4、11位的电话号码 # ret =re.findall('1[3-9]\d{9}','13312313642') # print(ret) 5、长度为8-10位的用户密码 : 包含数字字母下划线 # ret=re.findall('\w{8,10}','dsa_2312') # print(ret) 6、匹配验证码:4位数字字母组成的 # ret=re.findall('[\da-zA-Z]{4}','21d5') # print(ret) 7、匹配邮箱地址 # 邮箱规则 # @之前必须有内容且只能是字母(大小写)、数字、下划线(_)、减号(-)、点(.) # @和最后一个点(.)之间必须有内容且只能是字母(大小写)、数字、点(.)、减号(-),且两个点不能挨着 # 最后一个点(.)之后必须有内容且内容只能是字母(大小写)、数字且长度为大于等于2个字节,小于等于6个字节 # ret=re.findall('[\w\-\.]+@(?:[\da-zA-Z\-]+.)+[\da-zA-Z]{2,6}',r'zhmsh1992@qq.com') # print(ret) 8、从类似 <a>wahaha</a> <b>banana</b> <h1>qqxing</h1> 这样的字符串中, 1)匹配出wahaha,banana,qqxing内容。 # ret=re.search('<(\w+)>(.*?)</\w+>','<a>wahaha</a>') # print(ret.group(2)) 2)匹配出<a>,<b>,<h1>这样的内容 # ret=re.search('(<\w+>)(.*?)</\w+>','<a>wahaha</a>') # print(ret.group(1)) 9、1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2)) 从上面算式中匹配出内部没有小括号的子表达式 # ret=re.findall('\([^()]+\)','1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))') # print(ret) 10、从类似9-2*5/3+7/3*99/4*2998+10*568/14的表达式中匹配出第一个乘法或除法 ret=re.findall('(\d+[*/]\d+)+','9-2*5/3+7/3*99/4*2998+10*568/14') print(ret)