使用正则表达式分隔单个单词?

时间:2013-11-28 00:20:21

标签: java c# regex string split

我有以下行将句子拆分为单词并将其存储到基于空格的数组中:string[] s = Regex.Split(input, @"\s+");

问题在于句子的结尾,它也会占用期限。例如:C# is cool.
代码将存储:

  1. C#
  2. is
  3. cool.
  4. 问题是:如何让它不要接受这段时间?

5 个答案:

答案 0 :(得分:5)

您可以使用字符类[]添加点.或其他需要拆分的字符。

string[] s = Regex.Split(input, @"[\s.]+");

请参阅Demo

答案 1 :(得分:3)

您可以在正则表达式中添加点(和其他标点符号),如下所示:

string[] s = Regex.Split(input, @"(\s|[.;,])+");

答案 2 :(得分:2)

string[] s = Regex.Split(input, @"[^\w#]+");

您可能需要添加更多字符才能设置[^\w#],因此它会根据您的要求为您服务...

答案 3 :(得分:0)

使用非单词字符模式:\W

string[] s = Regex.Split(input, @"\W+");

答案 4 :(得分:0)

考虑使用Regex.Matches替代您的要求......

string[] outputMessage = Regex.Matches(inputMessage, @"\w+").Cast<Match>().Select(match => match.Value).ToArray();

祝你好运!