在某个单词后的两个字符串之间查找字符串



在以下字符串中:

s = '>foo</a> Start >bar</a> >baz</a>'

我想提取start之后></a>之间的第一个值,即bar

以下脚本分别完成任务,但我不知道如何合并它们。

regexp = re.compile("Start(.*)$")
output = regexp.search(s).group(1)
output = re.search('>(.*?)</a>', s).group(1)

您可以使用

r"Start[^>]*>(.*?)</a>"
r"(?s)Start.*?>([^<]*)</a>"

请参阅regex演示。详细信息:

  • Start-文字字符串
  • [^>]*-除>之外的零个或多个字符
  • >-一个>字符
  • (.*?)-组1:任何零个或多个字符,尽可能少
  • </a>—文字字符串

请参阅Python演示:

import re
s = '>foo</a> Start >bar</a> >baz</a>'
regexp = re.compile(r"Start.*?>([^<]*)</a>", re.DOTALL)
m = regexp.search(s)
if m:
print(m.group(1)) # => bar

好吧,我知道你想用这个做什么,但更简单的是:

s = '>foo</a> Start >bar</a> >baz</a>'
print (s.split("</a>")[1].split(">")[-1])

输出:

bar

最新更新