符号“?”、“”、“+”这三个元字符修饰符在Python中都表示重复匹配的模式,即要求匹配的字符串满足重复次数的要求,但具体重复次数要求不同,其中:
“?”:表示重复0-1次,即匹配字符串可以不出现或最多出现一次,如ab? 会匹配 ‘a’ 或者 ‘ab’;
“”:表示重复0-n次,即匹配字符串可以不出现或出现多次,最多次数不受限,ab* 会匹配 ‘a’, ‘ab’, 或者 'a’后面跟随任意个’b’;
“+”:表示重复1-n次,即匹配字符串至少出现一次,最多次数不受限, ab+ 会匹配 ‘a’ 后面跟随1个以上到任意个 ‘b’,它不会匹配 ‘a’。
注意:
1、 “?”、“”、“+”这三个元字符不应该在同一搜索内容后出现;
2、 “?”、“”、“+”这三个元字符必须出现在要重复内容的后面,且只影响这三个元字符前面的最后一个搜索单元。一个搜索单元是指:
1)一个普通字符;
2)或一个不包含重复次数要求的搜索模式串
3)一个以“()”标识的搜索模式子串。
3、 “?”、“*”、“+”这三个元字符在字符集中仅匹配自身。
案例:
>>> re.findall("第[一-十]?[章回]+(.*)",'第二回 悟彻菩提真妙理 断魔归本合元神 ')
[' 悟彻菩提真妙理u3000断魔归本合元神 ']
>>>
老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!*