什么是贪婪匹配:贪婪匹配在匹配字符串时总是尝试匹配尽可能多的字符。
什么是非贪婪匹配:与贪婪匹配相反,非贪婪匹配在匹配字符串时总是尝试匹配尽可能少的字符。
在python中默认采用的是贪婪模式,使用非贪婪模式的话,只需要在量词后面直接加上一个问号”?”。
python的正则表达式中的量词
符号 | 描述 |
---|---|
* | 匹配零次或多次 |
+ | 匹配一次或多次 |
? | 匹配一次或零次 |
{m} | 重复m次 |
{m,n} | 重复m到n次(m - n-1),其中n可以省略,表示m到任意次 |
import re
a = '33dkfkdsji3456 jdfijd8999'
m1 = re.search(f'\w+',a).group()
print(m1)
m2 = re.search(f'\w+?',a).group()
print(m2)
输出:
33dkfkdsji3456
3
在m2 = re.search(f’\w+?’,a).group()中\w+匹配3一次,匹配成功,所以就不再匹配。