0

我正在编写一个脚本,用 Python 将文本拆分成句子。但是,我不擅长编写更复杂的正则表达式。

有 5 条规则,我希望根据这些规则拆分句子。我想拆分句子,如果他们:

* end with "!"  or
* end with "?"  or
* end with "..."  or
* end with "." and the full stop is not followed by a number  or
* end with "." and the full stop is followed by a whitespace

Python 的正则表达式是什么?

4

1 回答 1

3

您可以从字面上将您的五个要点翻译成正则表达式:

!|\?|\.{3}|\.\D|\.\s

请注意,我只是创建了一个由五个备选方案组成的备选方案,每个备选方案代表您的一个要点:

  • !
  • \?
  • \.{3}
  • \.\D
  • \.\s

由于点 ( .) 和问号 ( ?) 是正则表达式模式中的特殊字符,因此它们需要通过反斜杠 ( \) 进行转义才能被视为文字。竖线 ( |) 是两个选项之间的分隔符。

使用上面的正则表达式,您可以使用re.split.

于 2013-11-08T12:40:07.633 回答