首页 > 解决方案 > 用数字和单词分割句子

问题描述

这是我的句子:

嗨,123,它是 564 和 678,所以让我们开始吧。

我需要用这样的数字和单词对其进行切片:

[0] -> "Hi "
[1] -> "123"
[2] -> " it is a "
[3] -> "564"
[4] -> " and "
[5] -> "678"
[6] -> ", so let's work."

char如果数组的每个块中有或没有数字,我试图将它按空格分割并加入。但这不是一个好主意,它有很多编码要加入和拆分。

即使使用Linq,有什么简单的方法吗?

标签: c#

解决方案


试试这个代码,它使用带有模式的正则表达式,\d+这意味着一个或多个数字,然后它按匹配这个模式的字符串分割:

string[] sentences = {"Hi 123 it is a 564 and 678, so let's work.",
                      "123 asd asd 123",
                      "123 asd 123 asd"};
for (int i = 0; i < sentences.Length; i++)
{
    var sliced = Regex.Split(sentences[i], @"(\d+)").Where(s => !string.IsNullOrEmpty(s)).ToArray();
}

推荐阅读