如果以句点结束而不是包含小数的数字,则为分句

时间:2015-03-23 09:35:31

标签: c# split

我想将文本拆分为句子,每个句子以.结尾,但不包括带小数点的数字。

我使用了分割功能。但它将数字分成两部分,我不想分割数字。

示例:

  

我的包装每天85.5,如何使用它。任何身体   有一个想法。请告诉我。

应分为:

  

我的包装每天85.5,如何使用它

     

任何机构都有这个想法

     

请让我知道

2 个答案:

答案 0 :(得分:2)

德米特里·拜琴科的答案很简单,但是它会在之后失去一个角色。(点)

var regex = new System.Text.RegularExpressions.Regex(@"(?<!\d)\.(?!\d)");
var myText = @"My package a mount is 85.5 daily, how can I make use of it. any body has an idea for that. please let me know.";

Console.WriteLine(regex.Replace(myText, Environment.NewLine));

它将仅消耗。(点)字符,该字符不会被跟随,也不会以数字开头。

答案 1 :(得分:1)

您可以使用&#34;句号空间&#34;作为分隔符:

string source = "My package amount is 85.5 daily, how can I make use of it. Anybody has an idea for that? Please let me know.";

string[] splits = Regex.Split(source, @"[\.?!]\s+");

这句话也以!?结尾,并且任意数量的空格(以及其他空白字符)至少为1。

如果您想保留句点,请搜索前面有该行尾符号的空格:

string[] splits2 = Regex.Split(source, @"(?<=[\.?!])\s+");