gpt4 book ai didi

c# - C#如何使用正则表达式拆分(A:B = C)*?

转载 作者:太空宇宙 更新时间:2023-11-03 17:37:13 24 4
gpt4 key购买 nike

据说这是一个非常简单的问题,但我似乎找不到正确的解决方案。有以下格式的字符串:

A:B=C;D:E=F;G:E=H;...


而A,B和C是字母数字(可以同时大小写)。 A和B的长度为1 +,C可以为空。

我认为我必须按照以下方式使用某些东西

((?<A>.+):(?<B>.+)=(?<C>.*);)*


但我看不出如何以一种懒惰的方式使其匹配。我也不确定如何获取各个匹配项的结果,因此,我希望获得一些代码示例。

如果您能给我一个提示,我会很高兴。

最佳答案

您可以使用\w来匹配字母数字字符,而不是.来匹配所有字符。然后,您可以尝试一次捕获一个匹配项:

(?<A>\w+):(?<B>\w+)=(?<C>\w*);


这是一个小例子:

Regex regex = new Regex("(?<A>\\w+):(?<B>\\w+)=(?<C>\\w*);");
string test = "A:B=C;D:E=F;G:E=H";

// get all matches
MatchCollection mc = regex.Matches(test);

foreach (Match m in mc) {
Console.WriteLine("A = {0}", m.Groups["A"].Value);
Console.WriteLine("B = {0}", m.Groups["B"].Value);
Console.WriteLine("C = {0}", m.Groups["C"].Value);
}


注意:有几种工具可以让您试验正则表达式,并提供一些帮助。我个人喜欢 Expresso-试试看,这对学习非常有用。

关于c# - C#如何使用正则表达式拆分(A:B = C)*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1042619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com