【发布时间】:2014-01-02 07:04:59
【问题描述】:
我需要将一个段落分成句子。所以这意味着在每个句点之后拆分它,但我还必须考虑到句子可以包含缩写,例如 Anniv。柠檬醇。公司等等。我使用lookbehind制作了一个正则表达式来匹配句点之前的任何缩写。我按照如下缩写列表动态创建正则表达式:
String regex = "(?<!abbrev1)(?<!abbrev2)\\.";
//abbrev 1 and abbrev 2 are just examples the regex I use is much longer
//Then I split the paragraph
paragraph.split(regex);
这可行,但问题是当我有一个像 U.S.A. OR R.A.F. 这样的缩写时,在这种情况下它没有
任何帮助将不胜感激 编辑:我想出了这个 http://regexr.com?37rb3
但是 id 在 Java 中不起作用,任何想法为什么它不起作用?
【问题讨论】:
-
我怀疑 RegEx 是否适合这个。它需要某种类型的解析器。正则表达式很强大,但它并不神奇。
-
用
[A-Z]进行负面回顾怎么样? -
好吧,我不能真正使用 [A-Z],因为缩写非常随机
-
对如何进行这种拆分有什么建议吗?
-
有没有像
A .B. C这样的缩写(.附近有空格)不应该被拆分?