Python 非贪婪正则表达式
处理正则表达式时,标准 * 运算符是贪婪的,这意味着它会尝试匹配尽可能多的内容尽可能的输入。然而,在某些情况下需要非贪婪方法。本文探讨了 Python 中非贪婪正则表达式的使用,特别关注目标是匹配特定子字符串而不包含不需要的字符的情况。
问题
考虑以下输入字符串:“a (b) c (d) e”
如果使用标准贪婪正则表达式“(.)”,Python会匹配“b) c (d”。这是因为将前面的表达式量化为零次或多次,贪婪行为导致它尽可能匹配。
解决方案
要使正则表达式非贪婪,请使用限定符?。这告诉 Python 尽可能少地匹配表达式,导致“(.?)”仅匹配“b”。
Python实现
输出:
结论
*?控制 Python 中正则表达式的行为 通过指定匹配应尽可能短,它允许您精确指定所需的子字符串,而不会无意中包含不需要的字符。
以上是如何在 Python 中使用非贪婪正则表达式匹配特定子字符串而不包含不需要的字符?的详细内容。更多信息请关注PHP中文网其他相关文章!