Python:删除<;之间的文本;表></表>;从文本

Python:删除<;之间的文本;表></表>;从文本,python,regex,parsing,Python,Regex,Parsing,我对Python中使用regex还是比较陌生的,我正在努力寻找一种方法来删除一个非常简单的.txt文件中标记之间的内容。看看这个例子 以下是我尝试过的: fdir = open("C:\\file.txt") line = fdir.read() line = line.lower() pattern = re.compile("(?is)<table[^>]*>(.*?)<\/table>", re.MULTILINE) line = pattern.sub(''

我对Python中使用
regex
还是比较陌生的,我正在努力寻找一种方法来删除一个非常简单的.txt文件中标记之间的内容。看看这个例子

以下是我尝试过的:

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=line.lower()
pattern=re.compile(“(?is)]*>(*?”,re.MULTILINE)
线条=图案.sub(“”,线条)

fdir=open(“C:\\file.txt”)
line=fdir.read()
行=re.sub(r“(?is)]*>(.*?”,'',行,re.DOTALL)
这两个代码只是删除我的文本文件中的标签
,而不是中间的标签。我的代码中缺少什么<我希望标签也被删除。

< P>你应该考虑删除这些标签…

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html)
>>> for t in soup.find_all('table'):
...     t.decompose()

你应该考虑删除这些标签…

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html)
>>> for t in soup.find_all('table'):
...     t.decompose()

你应该考虑删除这些标签…

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html)
>>> for t in soup.find_all('table'):
...     t.decompose()

你应该考虑删除这些标签…

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(html)
>>> for t in soup.find_all('table'):
...     t.decompose()
使用:

line=re.sub(“(?is)]*>(*?”,“”行)
我同意Tomalak的观点(见下面的评论):-此答案仅用于演示,不应在生产代码中使用。

使用:

line=re.sub(“(?is)]*>(*?”,“”行)
我同意Tomalak的观点(见下面的评论):-此答案仅用于演示,不应在生产代码中使用。

使用:

line=re.sub(“(?is)]*>(*?”,“”行)
我同意Tomalak的观点(见下面的评论):-此答案仅用于演示,不应在生产代码中使用。

使用:

line=re.sub(“(?is)]*>(*?”,“”行)

我同意Tomalak的观点(见下面的评论):-此答案仅用于演示,不应在生产代码中使用。

标签也应删除。对不起,这对我很有用。如果您的正则表达式中已包含
(?s)
,则无需添加
re.DOTALL
。通常的布道适用。不要在HTML上使用正则表达式。正则表达式在技术上无法处理HTML。使用。Python甚至让它变得非常简单。@Tomalak:没错,尽管对于保证不会更改的固定、简单格式的HTML解析,正则表达式可能已经足够了。FWIW,根据lxml文档,Beautiful Soup在内部使用正则表达式。OTOH,我想这是一个坏主意,似乎赞成使用正则表达式来解析HTML。@PM2Ring Cool.:)也就是说,世界上没有一个web开发人员不在HTML上使用正则表达式。有时甚至是不可避免的(想想文本编辑器)。这是一个具有讽刺意味的情况:只要你不得不问别人如何用正则表达式解决HTML问题,你对它们了解不够,不应该被“允许”去做。一旦你对他们有了足够的了解,你就不想再这样做了。(必然的结果是,这里有接近100%的正则表达式html问题,因此应该会引发一个“不”的答案,以及一个指向正确解析器的指针。)标签也应该被删除。对不起,这对我很有用。如果您的正则表达式中已包含
(?s)
,则无需添加
re.DOTALL
。通常的布道适用。不要在HTML上使用正则表达式。正则表达式在技术上无法处理HTML。使用。Python甚至让它变得非常简单。@Tomalak:没错,尽管对于保证不会更改的固定、简单格式的HTML解析,正则表达式可能已经足够了。FWIW,根据lxml文档,Beautiful Soup在内部使用正则表达式。OTOH,我想这是一个坏主意,似乎赞成使用正则表达式来解析HTML。@PM2Ring Cool.:)也就是说,世界上没有一个web开发人员不在HTML上使用正则表达式。有时甚至是不可避免的(想想文本编辑器)。这是一个具有讽刺意味的情况:只要你不得不问别人如何用正则表达式解决HTML问题,你对它们了解不够,不应该被“允许”去做。一旦你对他们有了足够的了解,你就不想再这样做了。(必然的结果是,这里有接近100%的正则表达式html问题,因此应该会引发一个“不”的答案,以及一个指向正确解析器的指针。)标签也应该被删除。对不起,这对我很有用。如果您的正则表达式中已包含
(?s)
,则无需添加
re.DOTALL
。通常的布道适用。不要在HTML上使用正则表达式。正则表达式在技术上无法处理HTML。使用。Python甚至让它变得非常简单。@Tomalak:没错,尽管对于保证不会更改的固定、简单格式的HTML解析,正则表达式可能已经足够了。FWIW,根据lxml文档,Beautiful Soup在内部使用正则表达式。OTOH,我想这是一个坏主意,似乎赞成使用正则表达式来解析HTML。@PM2Ring Cool.:)也就是说,世界上没有一个web开发人员不在HTML上使用正则表达式。有时甚至是不可避免的(想想文本编辑器)。这是一个具有讽刺意味的情况:只要你不得不问别人如何用正则表达式解决HTML问题,你对它们了解不够,不应该被“允许”去做。一旦你对他们有了足够的了解,你就不想再这样做了。(必然的结果是,这里有接近100%的正则表达式html问题,因此应该会引发一个“不”的答案,以及一个指向正确解析器的指针。)标签也应该被删除。对不起,这对我很有用。如果您的正则表达式中已包含
(?s)
,则无需添加
re.DOTALL
。通常的布道适用。不要在HTML上使用正则表达式。正则表达式在技术上无法处理HTML。使用。Python甚至让它变得非常简单。@Tomalak:没错,尽管对于保证不会更改的固定、简单格式的HTML解析,正则表达式可能已经足够了。FWIW,根据lxml文件,美丽的汤