解析列表中的一系列整数

时间:2010-01-28 11:33:33

标签: python regex parsing syntax-error

我刚刚开始学习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)

但到目前为止,没有这样的运气......我怎么能得到这些数字?

提前致谢, 学家

1 个答案:

答案 0 :(得分:1)

不要使用正则表达式来解析HTML。 BeautifulSoup将为此做好准备。

至于您的具体问题,可能是您在第一行末尾缺少冒号:

for o in re.finditer('left:102[0-9]"><nobr>(.*?)</nobr></div>', words[index]):
    out = o.group(1)

如果这不是问题,请按照您期望的输出发布您所获得的错误。