你好,我有这个作为我的测试字符串:
<image>
<title>CNN.com - Technology</title>
<link>http://www.cnn.com/TECH/index.html?eref=rss_tech</link>
我想使用 python 正则表达式从中选择“技术”,但是我需要特定的它以便它使用 <image>和 <link> .到目前为止,我的表达是:
'<title[^>]*>CNN.com - (.*?)</title>'
此表达式适用于选择“技术”,这是正确的,但我不确定如何使用 <image> 来专门化我的代码和 <link>在表达中。例如,我需要类似于此正则表达式 '<image><title[^>]*>CNN.com - (.*?)</title><link>' 的内容这实际上会产生与“技术”相同的结果吗?
请您参考如下方法:
您的正则表达式不错,但您需要转义 </title> 中的斜线带有反斜杠,并且由于字符串中的换行符而不匹配。
换行符是空格(像空格,制表...\s 等同于 [\t\n\r\f\v] 当没有设置 UNICODE 标志时),所以你可以使用\s 来匹配它们。
我假设您使用的是 python3,但这并不重要。
s = """<image>
<title>CNN.com - Technology</title>
<link>http://www.cnn.com/TECH/index.html?eref=rss_tech</link>"""
r = r"<image>[\s]*<title[^>]*>CNN.com - (.*?)<\/title>[\s]*<link>"
m = re.search(r, s)
print(m.group(0))
print(m.group(1))
group(1) 是“技术”。
