Python正则表达式非贪婪匹配

标签 python regex

我有这个代码:

import re
a = r'<b>1234</b><b>56text78</b><b>9012</b>'
print re.search(r'<b>.*?text.*?</b>', a).group()

我正在尝试匹配 <b> 之间的最小块和</b>其中任何地方都包含“文本”。这段代码是我能想到的最好的代码,但它匹配:

<b>1234</b><b>56text78</b>

当我需要时:

<b>56text78</b>

最佳答案

而不是.*使用这个

print re.search(r'<b>[^<]*text[^<]*</b>', a).group()

这里你说的是忽略“<”字符。

关于Python正则表达式非贪婪匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26001286/

相关文章:

java - 正则表达式 "\\,"和 ","之间有什么不同?

regex - 使用 perl -e 匹配多行

python - 知道是否在对象上调用了 + 或 __add__

Python 倒钩错误的方向

python - 打包 Ruby 或 Python 应用程序进行分发?

regex - 将 0(零)附加到 grep 匹配引用

python - 从包含多个数字的字符串中提取数字百分比

python - 将 pandas 数据框列表转换为 json

Python - 用零扩展和填充列表以匹配另一个列表

javascript - 如何从字符串中查找EJS标签变量名?