1 贪婪模式与非贪婪模式 的理解
1.1 贪婪模式:
是尽可能的多地匹配字符 ,贪婪模式一般是在元符号后面没有添加?
1.2 非贪婪模式(懒惰模式):
是尽可能的少匹配字符,非贪婪模式一般是元符号后面添加了?
2 demo 解释贪婪模式与非贪婪模式
例如 python 元符号中 * 代表重复匹配0次或者更多次 ,
2.1 贪婪模式的demo
import re # 导入re 模块
str_content = "abcdefgabcefg" # 要匹配的内容, 对应match 里面的string
str_pattern = re.compile("a.*g")
re_content = str_pattern.match(str_content)
print(re_content.group())
打印结果如下:
2.2 非贪婪模式的demo
import re # 导入re 模块
str_content = "abcdefgabcefg" # 要匹配的内容, 对应match 里面的string
str_pattern = re.compile("a.*?g")
re_content = str_pattern.match(str_content)
print(re_content.group())
打印效果如下
最后补充点知识,python 元字符的含义
元字符 | 含义 |
. | 匹配除换行符以外的任意一个字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
? | 重复匹配0次或1次 |
* | 重复匹配0次或更多次 |
+ | 重复匹配1次或更多次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n~m次 |
[a-z] | 任意字符 |
[abc] | a/b/c中的任意一个字符 |
{n} | 重复n次 |