【发布时间】:2017-05-18 21:06:22
【问题描述】:
我正在尝试创建一个程序,该程序可以“查找”指定的 HTML 标记,并用其他内容“替换”这些标记(使用作为字符串导入的 HTML 文本)。
免责声明:我对 python 很陌生,所以我可能会遗漏一些明显的东西。 另外 - 基于与此类似的先前帖子主题,我推测使用正则表达式模块可能最适合这个项目(不过我会接受替代建议)。
这是我的“输入”文本:
<p align="left"><span style="font-family: Arial,Arial; font-size: 12px; color: #ffffff;">Example Company | Technical How-To</span></p>
这是我想要的“输出”文本:
<p>Example Company | Technical How-To</p>
这是我的“输出”文本:
</p>
这是我用来得到答案的python代码:
while True:
import re
print("Enter HTML Text Below")
original = input("")
def cleaner(raw_html):
cleantextp = re.sub('<p.*?>', '<p>', raw_html)
cleantextspan1 = re.sub('<span.*?>', '', cleantextp)
cleantextspan2 = re.sub('<.*?/span>', '', cleantextspan1)
return cleantextspan2
if len(original) > 0:
print(cleaner(original))
else:
print("Please try again")
对我来说奇怪的是,当我“分离”我定义的函数并让它一次“清理”一个指定的标签时,它似乎可以工作。示例:
while True:
import re
print("Enter HTML Text Below")
original = input("")
def cleaner(raw_html):
cleantextp = re.sub('<p.*?>', '<p>', raw_html)
return cleantextp
if len(original) > 0:
print(cleaner(original))
else:
print("Please try again")
这段代码让我得到了这段文字(不会故意删除<span>标签,但也不会再次返回</p>):
<p><span style="font-family: Arial,Arial; font-size: 12px; color: #ffffff;">Example Company | Technical How-To</span></p>
所以基本上,我被困住了。我尝试了几种不同的方法,包括为每个标签定义一个单独的“干净”函数,并按顺序通过每个函数迭代“输入”文本,但我没有任何运气。有什么建议吗?
【问题讨论】: