2024-05-15 00:18:02 发布
网友
我正在做一个项目,这个项目需要我编写一些代码,从python的html文件中提取一些文本。在
<tr> <td>Target binary file name:</td> <td class="right">Doc1.docx</td> </tr>
^我感兴趣的html文件的一小部分。在
^我编写的示例代码用于测试是否可以提取数据。 我写了几个类似的程序来从txt文件中提取文本,几乎完全一样,它们工作得很好。关于regex和html,我有什么遗漏吗?在
浏览器所理解的HTML对于reg表达式来说太灵活了。属性可以以任何标记、任何顺序、大写或小写形式弹出,并且可以带有或不带引号。特别强调标记可以显示在任何地方。空白在regex中很重要,但在HTML中不太重要,所以您的regex必须到处都是\s*的。没有要求开始标记与结束标记匹配。一些开始标记包括尾随的“/”,这意味着它们是空标记(没有正文,没有结束标记)。最后,HTML通常是嵌套的,就regex而言,这与图表无关。在
\s*
这实际上是您要做的,还是只是一个简单的示例,稍后再使用更复杂的regex?如果是后者,那就听听其他人的意见。如果前者:
for line in file: if "binary" in line: # do stuff
如果不起作用,您确定"binary"在文件中吗?不,我不知道,"<i>b</i>inary"?在
"binary"
"<i>b</i>inary"
Is there something I'm missing out with regards to regex and html?
是的。您忽略了这样一个事实:某些HTML不能用简单的regex解析。在
浏览器所理解的HTML对于reg表达式来说太灵活了。属性可以以任何标记、任何顺序、大写或小写形式弹出,并且可以带有或不带引号。特别强调标记可以显示在任何地方。空白在regex中很重要,但在HTML中不太重要,所以您的regex必须到处都是
\s*
的。没有要求开始标记与结束标记匹配。一些开始标记包括尾随的“/”,这意味着它们是空标记(没有正文,没有结束标记)。最后,HTML通常是嵌套的,就regex而言,这与图表无关。在这实际上是您要做的,还是只是一个简单的示例,稍后再使用更复杂的regex?如果是后者,那就听听其他人的意见。如果前者:
如果不起作用,您确定
"binary"
在文件中吗?不,我不知道,"<i>b</i>inary"
?在是的。您忽略了这样一个事实:某些HTML不能用简单的regex解析。在
相关问题 更多 >
编程相关推荐