单字符匹配
字符 |
功能 |
. |
匹配任意1个字符(除了\n(换行符)) |
[ ] |
匹配[ ]中列举的字符 |
\d |
匹配数字,即0-9 |
\D |
匹配非数字,即不是数字 |
\s |
匹配空白,即 空格,tab键 |
\S |
匹配非空白 |
\w |
匹配单词字符,即a-z、A-Z、0-9、_ |
\W |
匹配非单词字符 |
多字符匹配
字符 |
功能 |
* |
匹配前一个字符出现0次或者无限次,即可有可无 |
+ |
匹配前一个字符出现1次或者无限次,即至少有1次 |
? |
匹配前一个字符出现1次或者0次,即要么有1次,要么没有 |
{m} |
匹配前一个字符出现m次 |
{m,n} |
匹配前一个字符出现从m到n次 |
匹配开头结尾
字符 |
功能 |
^ |
匹配字符串开头 |
$ |
匹配字符串结尾 |
text = "hello"
ret = re.match("^h",text)
print(ret.group())
text = "xxx@163.comsfsds"
ret = re.match(\w+@163.com$,text)
print(ret.group())
匹配分组
字符 |
功能 |
I |
匹配左右任意一个表达式 |
(ab) |
将括号中字符作为一个分组 |
\num |
引用分组num匹配到的字符串 |
(?P) |
分组起别名 |
(?P=name) |
引用别名为name分组匹配到的字符串 |
- 在正则表达式中
.
具有特殊含义,若要对 .
使用正则,用\进行转义
贪婪模式和非贪婪模式
贪婪模式:正则表达式会匹配尽量多的字符。默认是贪婪模式。
text = "0123456"
ret = re.match('\d+',text)
print(ret