可能重复:
What is a regular expression for parsing out individual sentences?
我想将大文本拆分成句子。我从回答here
得到的正则表达式string[] sentences = Regex.Split(mytext, @"(?<=[\.!\?])\s+");
所以我想用一个模式做分裂
如果.
?
!
跟随space
和 capital
字母而不是分割。
大写字母表示开始判刑。
text = " Sentence one . Sentence e.g. two ? Sentence three.
sentence[1] = Sentence one
sentence[2] = Sentence e.g. two
对于像缩写这样的有问题的情况,我打算做替换
mytext.replace("e.g.","eg");
如何在正则表达式中实现它?
答案 0 :(得分:5)
\p{Lt}
表示Unicode大写字母(包括重音等),所以
string[] sentences = Regex.Split(mytext, @"(?<=[.!?])\s+(?=\p{Lt})");
应该做你想做的事。
(请注意,我认为.
或?
不需要在字符类中进行转义,所以我也删除了它们,但请检查这些字符是否也适用。)
然而,请注意,这仍将分裂为例如Mr. Jones
...