常见的通用字符及其含义
符号 |
含义 |
\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) 来获取匹配结果。