gpt4 book ai didi

python - 使用正则表达式以非贪婪方式匹配特定文本之前的文本

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:01 26 4
gpt4 key购买 nike

我有表格的文本

<span style="color:red;">hello</span> <span style="color:green;">world</span>

我想尝试匹配 span 之一基于 hello 的标签或world文本。我尝试过以下形式:

(<span.*?)(?=world).*?<\/span>

使用lookahead,但是匹配整个字符串而不仅仅是<span style="color:green;">world</span>我在寻找。我怎样才能匹配<span... world之前的文字以非贪婪的方式?

最佳答案

您可以尝试以下正则表达式:

(<span[^>]*>)world.*?<\/span>

下面是使用此正则表达式的 Python 代码片段:

input = "<span style=\"color:red;\">hello</span> <span style=\"color:green;\">world</span>"

matchObj = re.match( r'.*(<span[^>]*>)world.*?</span>.*', input, re.M|re.I)

if matchObj:
print "matchObj.group() : ", matchObj.group()
print "matchObj.group(1) : ", matchObj.group(1)
else:
print "No match!!"

请注意,在 Python 代码中,我必须将 .* 添加到原始模式的开头和结尾,因为 Python 正则表达式引擎似乎坚持将模式与整个字符串进行匹配。可能有一个标志可以避免这种情况,但无论如何希望这个答案能让您摆脱困境并允许您继续工作。

此处演示:

Rextester

关于python - 使用正则表达式以非贪婪方式匹配特定文本之前的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46107393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com