这是要求。
我有一个字符串,其中包含多个特定格式的条目。下面的例子
string SourceString = "<parameter1(value1)><parameter2(value2)><parameter3(value3)>";
我想得到如下输出
string[] parameters = {"parameter1","parameter2","parameter3"};
string[] values = {"value1","value2","value3"};
上面的字符串只是一个例子,有3对参数值。该字符串可能有 40、52、75 - 任意数量的条目(一个字符串中少于 100 个)。 像这样,我在一个数组中有多个字符串。我想对数组中的所有字符串执行此操作。
有人可以建议如何实现这一目标吗?我是 c# 的新手。 使用正则表达式是更好的解决方案还是有其他方法? 非常感谢任何帮助。
最佳答案
如果您不喜欢 RegEx,您可以这样做:
class Program
{
static void Main()
{
string input = "<parameter1(value1)>< parameter2(value2)>";
string[] Items = input.Replace("<", "").Split('>');
List<string> parameters = new List<string>();
List<string> values = new List<string>();
foreach (var item in Items)
{
if (item != "")
{
KeyValuePair<string, string> kvp = GetInnerItem(item);
parameters.Add(kvp.Key);
values.Add(kvp.Value);
}
}
// if you really wanted your results in arrays
//
string[] parametersArray = parameters.ToArray();
string[] valuesArray = values.ToArray();
}
public static KeyValuePair<string, string> GetInnerItem(string item)
{
//expects parameter1(value1)
string[] s = item.Replace(")", "").Split('(');
return new KeyValuePair<string, string>(s[0].Trim(), s[1].Trim());
}
}
它可能比 RegEx 方法快一点点,但肯定没有那么灵活。
关于c# - 从字符串中提取可变数量的 token 对到一对数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6764403/