如何在Python中删除html文件的特定部分

时间:2013-07-24 21:12:39

标签: python html

我正在处理一个包含第1项,第2项和第3项的html文件。我想删除第2项之后的所有文本。我可以在文件中找到第2项:

Item2= re.compile (r'(Item 2)',re.I|re.S)
Item2match= Item2.findall(file)

但我不知道如何删除之后的文字。

2 个答案:

答案 0 :(得分:0)

只需使用字符串方法拆分html文本并取第一部分; str.partition()更加简单:

file.partition('Item 2')[0]

如果您想保留Item 2文字,请使用:

''.join(file.partition('Item 2')[:2])

此处无需使用正则表达式;你匹配文字文本。正则表达式是一个非常有表现力和强大的功能工具,但如果有更简单的替代方法,请不要使用它。

演示:

>>> 'Some text with Item 2 in it'.partition('Item 2')[0]
'Some text with '
>>> ''.join('Some text with Item 2 in it'.partition('Item 2')[:2])
'Some text with Item 2'

答案 1 :(得分:0)

>>> re.sub(r'(?s)(?<=Item&nbsp;2)(.*)', '', file)

示例:

>>> s
'Item&nbsp;2...feiugeogherger\nfjweifjwef\nsfjioweiefjwe'
>>> re.sub(r'(?s)(?<=Item&nbsp;2)(.*)', '', s)
'Item&nbsp;2'