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

Posted

技术标签:

【中文标题】单词和排队标点字符的字符串拆分【英文标题】:String split on words and queued punctuation characters 【发布时间】:2013-12-25 23:21:22 【问题描述】:

这是我现在使用的模式:

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>();

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

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

【问题讨论】:

【参考方案1】:

试试这个正则表达式:

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

说明

【讨论】:

请问您是如何构建这个简洁的架构的?【参考方案2】:

尝试以下模式。我添加了一个额外的+。让我知道你是否打算做其他事情。希望对您有所帮助。

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

对于 inputString = "abc;..cbe;aaa...kjaskjas" 我得到这个结果:

abc
;..
cbe
;
aaa
...
kjaskjas

【讨论】:

以上是关于单词和排队标点字符的字符串拆分的主要内容,如果未能解决你的问题,请参考以下文章

使用动态编程将字符串拆分为有效单词的字符串

如何将字符串拆分为单词。例如:“stringintowords”->“String Into Words”?

正则表达式标点分割[Python]

如何在 BigQuery SQL 中将字符串列拆分为多行单个单词和单词对?

将字符串拆分为第一个单词和其余文本?

RegEx Tokenizer:将文本拆分为单词、数字、标点和空格(不要删除任何内容)