常见的通用字符及其含义
符号 | 含义 |
\w | 匹配任意一个字母、数字或下划线 |
\W | 匹配除字母、数字和下划线以外的任意一个字符 |
\d | 匹配任意一个十进制数 |
\D | 匹配除十进制数以外的任意一个其他字符 |
\s | 匹配任意一个空白字符 |
\S | 匹配除空白字符以外的任意一个其他字符 |
常见的元字符及其含义
符号 | 含义 |
. | 匹配除换行符以外的任意字符 |
^ | 匹配字符串的开始位置 |
$ | 匹配字符串的结束位置 |
* | 匹配0次、1次或多次前面的原子 |
? | 匹配0次或1次前面的原子 |
+ | 区配1次或多次前面的原子 |
{n} | 前面的原子恰好出现n次 |
{n,} | 前面的原子至少出现n次 |
{n,m} | 前面的原子至少出现n次,至多出现m次 |
| | 模式选择符: a|b 匹配a或b |
() | 模式单元符 |
[…] | 用来表示一组字符,单独列出:[amk]匹配’a’, ‘m’ 或 ‘k’ |
[^…] | 不在[]中的字符:[^abc]匹配除了a,b,c之外的字符 |
(?#...) | 注释 |
常见的模式修正符及其含义
符号 | 含义 |
re.I | 匹配时忽略大小写 |
re.M | 多行匹配,影响 ^ 和 $ |
re.L | 做本地化识别匹配 |
re.U | 根据Unicode字符集解析字符 |
re.S | 使 . 匹配包括换行符在内的所有字符 |
常见的正则表达式应用:
1>匹配 .com 或 .cn 后缀的 URL 网址
pattern = "[a-zA-Z]+://[^\s]*[.com|.cn]"
2>匹配电话号码
pattern = "\d{4}-\d{7}|\d{3}-\d{8}"
3>匹配 电子邮件地址
pattern = "\w+([.+-]\w+)*@\w+([.-]\w+)*\.\w+([.-]\w+)*"
通过 result = re.search(pattern, string) 或者 result = re.compile(pattern).findall(string) 来获取匹配结果。