我需要分割一个字符串,例如:
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"]
模式可以有点时髦。但是,让我们说它总是以数字开头,必须以字母结束
答案 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);
结果:
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;并再次修剪()。