字符串拆分为单词和排队标点字符

时间:2013-12-08 23:33:30

标签: c# regex regex-group

这是我现在使用的模式:

string pattern = @"^(\s+|\d+|\w+|[^\d\s\w])+$";

Regex regex = new Regex(pattern);
if (regex.IsMatch(inputString))
{
      Match match = regex.Match(inputString);

      foreach (Capture capture in match.Groups[1].Captures)
      {
           if (!string.IsNullOrWhiteSpace(capture.Value))
               tmpList.Add(capture.Value);
      }
 }
 return tmpList.ToArray<string>();

通过这个,我检索一个字符串数组,每个单词的项目和每个标点字符的一个项目。

我现在想要实现的是将排队的标点符号分组只在一个项目中,即现在如果一个接一个地有三个点,我在我的数组中得到三个项目,每个项目包含一个点。最后,我想要一个带有三个圆点的项目(或任何其他标点符号)。

2 个答案:

答案 0 :(得分:5)

试试这个正则表达式:

^(\s+|\d+|\w+|[^\d\s\w]+)+$

描述

Regular expression visualization

答案 1 :(得分:2)

尝试使用以下模式。我加了额外的+。如果您想要其他内容,请告诉我。希望它有所帮助。

string pattern = @"^(\s+|\d+|\w+|[^\d\s\w]+)+$";

对于inputString =&#34; abc; .. cbe; aaa ... kjaskjas&#34;我得到了这个结果:

abc
;..
cbe
;
aaa
...
kjaskjas