Guf*_*ffa 32
您可以拆分匹配空格的正则表达式,并使用查找句子终止符的lookbehind:
string[] sentences = Regex.Split(input, @"(?<=[\.!\?])\s+");
Run Code Online (Sandbox Code Playgroud)
这将拆分空白字符并将句子保留在句子中.
例:
string input = "First sentence. Second sentence! Third sentence? Yes.";
string[] sentences = Regex.Split(input, @"(?<=[\.!\?])\s+");
foreach (string sentence in sentences) {
Console.WriteLine(sentence);
}
Run Code Online (Sandbox Code Playgroud)
输出:
First sentence.
Second sentence!
Third sentence?
Yes.
Run Code Online (Sandbox Code Playgroud)
试试这个(MSDN)
char[] separators = new char[] {'!', '.', '?'};
string[] sentences1 = "First sentence. Second sentence!".Split(separators);
//or...
string[] sentences2 = "First sentence. Second sentence!".Split('!', '.', '?');
Run Code Online (Sandbox Code Playgroud)
您想支持哪些语言?例如,在泰语中,单词之间没有空格,句子用空格分隔.所以,一般来说,这项任务非常复杂.还要考虑FredrikMörk的有用评论.
所以,首先你需要定义一套关于"句子"的规则.然后,欢迎您使用建议的解决方案之一.