我刚刚开始学习Python,但我遇到了一个小问题。 我需要解析一个文本文件,更具体地说是一个HTML文件(但它的语法是如此奇怪 - 在div之后的div之后的div,对于某个PDF,Google的“以HTML格式查看”的结果似乎无法提取文本因为它有一个用m $ word完成的凌乱的表格。)
无论如何,我选择了一种相当低级的方法,因为我只需要数据,因为我开始学习Python,我认为学习基础知识对我有用。
我已经完成了所有工作,除了我需要从一组div中检索一组整数的一小部分。这是一个例子:
<div style="position:absolute;top:522;left:1020"><nobr>*88</nobr></div>
现在数字我想要检索<nobr></nobr>
内的所有数据(在这种情况下,'588'),因为它是一个非常混乱的文件,我必须确保我得到的是正确的。为此,<nobr></nobr>
中的该数字必须以"left:1020"
,"left:1024"
或"left:1028"
开头。这是因为自动转换,最好的选择是在我看来以left:102[0-]
为前面的所有数字。
为此,我试图使用:
for o in re.finditer('left:102[0-9]"><nobr>(.*?)</nobr></div>', words[index])
out = o.group(1)
但到目前为止,没有这样的运气......我怎么能得到这些数字?
提前致谢, 学家
答案 0 :(得分:1)
不要使用正则表达式来解析HTML。 BeautifulSoup将为此做好准备。
至于您的具体问题,可能是您在第一行末尾缺少冒号:
for o in re.finditer('left:102[0-9]"><nobr>(.*?)</nobr></div>', words[index]):
out = o.group(1)
如果这不是问题,请按照您期望的输出发布您所获得的错误。