嗨,我把它作为我的测试字符串:
<image>
<title>CNN.com - Technology</title>
<link>http://www.cnn.com/TECH/index.html?eref=rss_tech</link>
我想选择&#39;技术&#39;从它使用python正则表达式,但我需要它具体,以便它使用<image>
和<link>
。到目前为止,我的表达是:
'<title[^>]*>CNN.com - (.*?)</title>'
此表达式可用于选择“技术”,这是正确的,但我不确定如何使用表达式中的<image>
和<link>
来专门化我的代码。例如,我需要这个正则表达式'<image><title[^>]*>CNN.com - (.*?)</title><link>'
的内容,它实际上可以产生相同的“技术”结果?
答案 0 :(得分:1)
你的正则表达式并不错,但你需要使用反斜杠转义</title>
中的斜杠,因为字符串中的换行符不匹配。
新行是空格(如空格,制表...... \ s等于[\ t \ n \ r \ n \ 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))
组(1)是&#34;技术&#34;。
答案 1 :(得分:0)
这样的事情怎么样:
(<image>\n<title>CNN.com - )(.*?)(<\/title>\n.*)
第2组将是Technology
。
答案 2 :(得分:0)
如果你使用&#39;单行&#39;正则表达式的选项,您使用.
命名换行符。所以,你可以这样做:
<image>.<title[^>]*>CNN.com - (.*?)</title>.<link>