gpt4 book ai didi

python - 正则表达式匹配很慢

转载 作者:行者123 更新时间:2023-11-28 22:07:08 31 4
gpt4 key购买 nike

我正在尝试解析 PDF 以从中提取文本(请不要建议任何图书馆这样做,因为这是学习格式的一部分)。
我已经处理过将其缩小以将其放入字母数字格式。我现在需要从文本 block 中提取文本。
所以,我当前的模式是 BT.*?\((.*?)\).*?ET(设置了 DOTMATCHALL)以匹配类似以下内容:

BT
/F13 12 Tf
288 720 Td
(ABC) Tj
ET

我唯一想要的是括号中的文本 ABC。
上面只是为了让大家看得清楚才格式化的。在缩小的文本中,它可能全部在一行中,也可能不是。不能保证 BT/ET 位于一行的开头。括号部分之前/之后可能有空格和文本,也可能没有。但是,每个 BT/ET block 只有一个括号内的部分。

上述模式有效,但速度很慢,我认为这是因为正则表达式库多次无法匹配匹配 BT 和 (ABC) 之间文本的模式。
正则表达式是预编译的,试图加快它的速度,但它似乎可以忽略不计。

我怎样才能加快速度?

最佳答案

文档中可能出现多少这样的 block ?

Regex 执行缓慢通常是灾难性回溯的结果,如下所述:http://www.regular-expressions.info/catastrophic.html

我不知道您使用的是哪种正则表达式技术,但您可以尝试使用环视断言,如下所述: http://www.regular-expressions.info/lookaround.html

这些允许您首先匹配您想要的内容,ABC 在括号内,然后验证它前面是否有某个值,后面是否有其他值。

关于python - 正则表达式匹配很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563329/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com