需要帮助来分割字符串

时间:2014-08-14 14:01:25

标签: c# regex string

我需要分割一个字符串,例如:

1 kg sugar, 100 pound flour, 10 g salt, 1 1/4 cup of flour, 1,5 piece of stuff or 1.5 cup of water

这应该返回类似:

["1 kg sugar", "100 pound flour", "10 g salt", "1 1/4 cup of flour", "1,5 piece of stuff", "1.5 cup of water"]

模式可以有点时髦。但是,让我们说它总是以数字开头,必须以字母结束

3 个答案:

答案 0 :(得分:0)

替换所有

(, )|( or )

通过

", "

在开头添加[",在结果的末尾添加"]

对c#一无所知,只是使用RegexCoach进行测试。

答案 1 :(得分:0)

这不需要正则表达式。在逗号和空格上拆分字符串。

var input = "1 kg sugar, 100 pound flour, 10 g salt, 1 1/4 cup of flour, 1,5 piece of stuff or 1.5 cup of water";
var results = input.Split(new [] { ", " }, StringSplitOptions.None);

DotNetFiddle

结果:

1 kg sugar 
100 pound flour 
10 g salt 
1 1/4 cup of flour 
1,5 piece of stuff or 1.5 cup of water 

答案 2 :(得分:0)

我相信我找到了解决方案。不确定它是否是最佳方式,但我使用正则表达式来提取需要的内容

string pattern = @"[0-9][0-9 /.,]+[a-zA-Z ]+";
string input = line;

var result = new List<string>();

foreach (Match m in Regex.Matches(input, pattern))
   result.Add(m.Value.Trim());

return result;

这段代码返回我需要的内容,例如

new[] { "1 kg sugar", "100 pound flour", "10 g salt", "1 1/4 cup of flour", "1.5  piece of stuff or", "1.5 cup of water" }

从那里,我将循环删除所有不需要的词,例如&#39;或&#39;并再次修剪()。