需要帮忙劈开一根绳子

本文关键字:一根 | 更新日期: 2023-09-27 18:18:04

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

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"]

的模式可以有点时髦。但假设它总是以数字开头以字母结尾

需要帮忙劈开一根绳子

替换所有

(, )|( or )

", "

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

对c#一无所知,只是用RegexCoach测试了一下

不需要正则表达式。用逗号和空格分隔字符串

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 

我相信我已经找到解决办法了。不确定这是否是最好的方式,但我正在使用正则表达式来提取所需的

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" }

从那里,我将循环删除所有不需要的单词,如'or'和Trim()。