正则匹配的基本格式
import re
ret=re.match("正则表达式","要匹配的字符串")
ret.group( ) 提取数据
匹配单个字符:
- . 匹配任意一个字符(除了\n)
- [ ] 匹配[ ] 中的 任意一个字符
- \d 匹配数字 即 0-9
- \D 匹配非数字
- \s 匹配空白,即空格
- \S 匹配非空格
- \w 匹配单词字符 即 a-z、A-Z、0-9、_
- \W 匹配非单词字符
import re
ret=re.match("t.o","two")
if ret:
print(ret.group( ))
else:
print("匹配失败")
匹配多个字符:
*
匹配前一个字符出现 0次 或者 无限次,可有可无 贪婪匹配+
匹配前一个字符出现 1次 或者 无限次,至少一次 贪婪匹配- ? 匹配前一个字符出现 0次 或者 1次,要么0次,要么1次
- {m} 匹配前一个字符出现 m次
- {m,n} 匹配前一个字符出现 m到n次
- {m, } 匹配前一个字符出现 至少m次
- { ,m} 匹配前一个字符出现 最多m次
import re
ret=re.match("tw*o","twwwo")
if ret:
print(ret.group( ))
else:
print("匹配失败")
匹配开头和结尾:
- ^ 匹配字符串的开头
import re
ret=re.match("^1\d{10}","13312151412")
if ret:
print(ret.group( ))
else:
print("匹配失败")
- $ 匹配字符串的结尾
import re
ret=re.match("^1\d{9}2$","13312151412")
if ret:
print(ret.group( ))
else:
print("匹配失败")
不以某个 数字或字母 结尾/开头
- [^36]$ 不以36结尾
- [25] 不以25开头
匹配分组:
(abc) 将括号中的字符 作为一个分组
| 匹配 | 左右任意一个表达式
\num 引用分组num匹配到的字符串 num 代表 数字
r 声明原生字符,特别针对 \ 等
import re
ret=re.match(r"<(\w+)>\w{2}</\1>","<html>hh</html>")
if ret:
print(ret.group( ))
else:
print("匹配失败")