我在Python中对regex
的使用还比较新,我很努力地找到一种方法来在非常简单的.txt文件中删除标记之间的内容。例如,请参阅file。Python:从文本中删除<Table></Table>之间的文本
这是我已经试过:
fdir = open("C:\\file.txt")
line = fdir.read()
line = line.lower()
pattern = re.compile("(?is)<table[^>]*>(.*?)<\/table>", re.MULTILINE)
line = pattern.sub('', line)
和
fdir = open("C:\\file.txt")
line = fdir.read()
line = re.sub(r"(?is)<table[^>]*>(.*?)<\/table>", '', line, re.DOTALL)
两个代码只需取下标签<Table>
和<\Table>
在我的文本文件,而不是什么是介于两者之间。我的代码中缺少什么? 我希望标签也被删除。
标签也应该删除。对不起,我很困惑 – Plug4 2014-11-23 05:30:48
它适用于我。如果'(?s)'已经包含在你的正则表达式中,你不需要添加're.DOTALL'。 – 2014-11-23 05:35:20
通常的布道适用。不要在HTML上使用正则表达式。 **正则表达式在技术上无法处理HTML。**使用[解析器](http://www.crummy.com/software/BeautifulSoup/)。 Python甚至使它变得非常容易。 – Tomalak 2014-11-23 05:57:56