maf*_*afu 1 c# regex lazy-evaluation
这应该是一个非常简单的问题,但我似乎无法找到正确的解决方案.格式中有一个字符串:
A:B=C;D:E=F;G:E=H;...
Run Code Online (Sandbox Code Playgroud)
而A,B和C是字母数字(并且可以更低,也可以是大写).A和B的长度为1+,C可以为空.
我想我必须使用类似的东西
((?<A>.+):(?<B>.+)=(?<C>.*);)*
Run Code Online (Sandbox Code Playgroud)
但我不知道如何以懒惰的方式使它匹配.我也不确定如何获得相应匹配的结果,所以我很感激一些代码示例.
如果你能给我一个提示,我会很高兴的.
正则表达式是一个要求吗?由于字符串具有非常结构化的良好结构,因此很容易在没有正则表达式的情况下解析它:
string input = "A:B=C;D:EF=G;E:H=;I:JK=L";
string[] elements = input.Split(new[] { ';' });
List<string[]> parts = new List<string[]>();
foreach (string element in elements)
{
parts.Add(element.Split(new[] { ':', '=' }));
}
// result output
foreach (string[] list in parts)
{
Console.WriteLine("{0}:{1}={2}", list[0], list[1], list[2]);
}
Run Code Online (Sandbox Code Playgroud)
输出将是:
A:B=C
D:EF=G
E:H=
I:JK=L
Run Code Online (Sandbox Code Playgroud)