Python 非贪婪正则表达式:揭秘 * 的力量?
在正则表达式领域,贪婪占据着至高无上的地位。像“.*”这样的结构通常会消耗尽可能多的文本,从而导致匹配臃肿。但是,如果您正在寻找一种更外科手术的方法,优先考虑早期匹配,该怎么办?
解决方案在于神秘的 *?,它是一个将贪婪的正则表达式转换为非贪婪的哨兵的修饰符。这个不起眼的通配符告诉 Python 匹配适合该模式的最小文本部分。
考虑示例“a (b) c (d) e”。标准的“(.)”正则表达式会抓取沉重的“b) c (d”。要驯服这种过度热心的行为,请部署 ?:“(.*?)”的力量。现在,Python 将乖乖地抓住“b”,让其余部分不受干扰。
*?限定符超出了单纯的括号范围,它使正则表达式模式能够捕获任何满足条件的片段,并在越过边界或模式时停止。
所以,当你需要你的正则表达式更加克制时,只需附加那个神奇的 *?"。让它引导你的匹配对象走向他们真正的使命,一次一个非贪婪的步骤。
以上是如何使我的 Python 正则表达式变得非贪婪?的详细内容。更多信息请关注PHP中文网其他相关文章!