君子论迹不论心,论心世上无完人
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
匹配除换行符之外的任何字符
>>> def mat(m):
if m.group(2)=='1234': return m.group(1) else: return '1234'>>> re.sub(r'(\d+) (\d+)',mat,'123 1234qer')'123qer'>>> re.sub(r'(\d+) (\d+)',mat,'123 123qer')'1234qer'
>>> re.search(r'(?<=123)\w+','123asd,wer').group(0)
'asd'
2.匹配前面是数字后面是下划线的字符
>>> re.search(r'(?<=123)\w+(?=_)','123asd_123wer').group(0)
'asd'
3.匹配手机号码
>>> re.match(r'1[3,5,7,8]\d{9}|','13573528479').group()
'13573528479'
4.匹配电话号码
>>> re.match(r'\d{3}-\d{8}|\d{4}-\d{7}','0531-82866666').group() '0531-8286666'
5.匹配IP地址
>>> re.match(r'\d+\.\d+\.\d+\.\d+','192.168.10.25').group()
'192.168.10.25'
6.匹配网易邮箱
>>> re.findall(r'\w+@163\.com|\w+@126\.com','wanger@163.com wanger@126.com')['wanger@163.com', 'wanger@126.com']
7.匹配HTML文本
>>> re.match(r'<(\w*)><(\w*)>.*</\2></\1>','<body><h2>wahaha5354</h2></body>').group()'<body><h2>wahaha5354</h2></body>'