常用匹配符
| 符号 | 描述 |
|---|---|
| . | 匹配任意字符(除了\n) |
| [ ] | 匹配列表中的字符 |
| \w | 匹配字母a~z A~Z、数字0~9、下划线_ |
| \W | 匹配不是字母a~z A~Z、数字0~9、下划线_ |
| \s | 匹配空白字符,即\n, \t, \r, 空格 |
| \S | 匹配不是空白字符 |
| \d | 匹配数字0~9 |
| \D | 匹配非数字的字符 |
常用限定符
| 符号 | 描述 | 符号 | 描述 |
|---|---|---|---|
| * | 匹配0次或多次 | {m} | 重复m次 |
| + | 匹配1次或多次 | {m,n} | 重复m到n次,其中n可以省略,表示m到任意次 |
| ? | 匹配1次或0次 | {m, } | 至少m次 |
边界字符
| 字符 | 功能 |
|---|---|
| ^ | 匹配字符串开头 |
| $ | 匹配字符串结尾 |
| \b | 匹配一个单词的边界 |
| \B | 匹配非单词的边界 |
re.match尝试从字符串的起始位置匹配的一个模式。
import re
text = 'hello'
ret = re.match('he',text)
print(ret.group())
>> he
点(.)匹配任意字符
text = 'ab'
ret = re.match('.',text)
print(ret.group())
>> a
但是 点(.)匹配不到换行符,例如:
text = '\\n'
ret = re.match('.',text)
print(ret.group())
>> AttributeError: 'NoneType' object has no attribute 'group'
\d 匹配任意数字(0~9)
text = '5'
ret = re.match('\\d',text)
print(ret.group())
>> 5
\D 匹配任意非数字
text = '='
ret = re.match('\\D',text)
print(ret.group())
>> =
\s 匹配空白字符(包含:\n, \t, \r, 空格)