Python正则表达式的用法

时间:2016-10-06 08:52:23

标签: python regex

如何从波纹管线中提取 string1#string2

<![CDATA[<html><body><p style="margin:0;">string1#string2</p></body></html>]]>

#字符和行的结构始终相同。

4 个答案:

答案 0 :(得分:1)

我想推荐给您gem

在综合中,正则表达式不适合这项工作 您是否尝试过XML解析器?

编辑:

import xml.etree.ElementTree as ET
a = "<html><body><p style=\"margin:0;\">string1#string2</p></body></html>"
root = ET.fromstring(a)
c = root[0][0].text

OUT:
c
'string1#string2'

d = c.replace('#', ' ').split()
Out: 
d 
['string1', 'string2']

答案 1 :(得分:1)

简单,有缺陷,不可靠:

line.replace('<![CDATA[<html><body><p style="margin:0;">', "").replace('</p></body></html>]]>', "").split("#")

答案 2 :(得分:1)

re.search(r'[^>]+#[^<]+',s).group()

答案 3 :(得分:0)

如果您想使用正则表达式:

>>> re.search(r"<p.*?>(.+?)</p>", txt).group(1)
'string1#string2'