我在Python中使用regex
仍然相对较新,我很难找到一种方法来删除非常简单的.txt文件中的标记之间的内容。例如,见file。
以下是我尝试的内容:
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>
,而不是之间的标记。我的代码中缺少什么? 我也想删除标签。
答案 0 :(得分:2)
您应该考虑使用BeautifulSoup删除这些标记...
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html)
>>> for t in soup.find_all('table'):
... t.decompose()
答案 1 :(得分:1)
使用 re.sub :
line = re.sub("(?is)<table[^>]*>(.*?)<\/table>", "", line)
我同意Tomalak(请参阅下面的评论):HTML shouldn't be parsed using regex - 此答案仅供演示,不应在生产代码中使用。