符号“?”、“”、“+”这三个元字符修饰符在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.youkuaiyun.com/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!*
本文详细介绍了Python正则表达式中“?”、“”、“+”三个元字符的使用方法,它们分别表示重复0-1次、0-n次、1-n次的模式。通过案例演示了如何应用这些元字符进行复杂的字符串匹配。
1904

被折叠的 条评论
为什么被折叠?



