我正在尝试使用python创建一种数据挖掘器。我要检查的是希腊语词典。所述字典最初是PDF格式的,我将其转换为粗糙的对应HTML格式以更轻松地对其进行解析。由于数据结构严重失真,因此我对其进行了进一步的格式化。我当前的任务是查找并单独存储各个单词及其描述。因此,想到的第一个想法是,除了描述之外,首先要识别这些词。单词空间的标头具有非常特定的语法,我使用它来创建一个对应的正则表达式以匹配它们中的每一个。不过有一个问题。尽管到目前为止,我已经对HTML进行了格式化,但仍有很多地方,一系列逻辑数据被序列中断,后跟换行符,并以随机顺序中断。有什么方法可以使我的正则表达式“忽略”该序列,即在遇到某个序列时将其视为不存在,从而包括那些被其打断的匹配项?也就是说,不放入( \ n)?在我的RE的每个部分中,涵盖所有可能的情况。我使用的正则表达式如下:(ο|η|το)?( )?<b>([α-ωάέήίόύώϊϋΐΰ])*</b>(, ((ο|η|το)? <b>([α-ωάέήίόύώϊϋΐΰ])*</b>))*( \(.*\))? ([Α-Ω])*\.( \(.*\))?<b>:</b>并且当数据没有被上述给定的顺序打断时,在匹配方面做得很好。如果不理解,问题在于中断序列可以出现在比赛中的任何地方,因此我正在寻找一种方法,而不是覆盖可能发生序列的每个位置(在决定是否返回比赛时忽略序列)还是没有),正如我之前解释的那样。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 您要的是一个不同的正则表达式。新的正则表达式将是旧的正则表达式,在每个非量化字符后都带有(<br\s*?/>\n?)?等。您可以编写一些内容以将正则表达式转换为所需的形式。它会采用您现有的正则表达式,并产生一个耐br的正则表达式。正则表达式语法中不存在可自动为您执行此操作的构造。我认为更容易做到的是将源文档置换为不包含您希望忽略的序列。这应该是简单的文本替换。如果不是为了明确使用<b>标记来表示含义,则另一种选择是仅获取纯文本文档内容而不是HTML内容。 (adsbygoogle = window.adsbygoogle || []).push({}); 09-26 07:44