gpt4 book ai didi

.net - .NET 中的正则表达式 : joining duplicate named captured groups

转载 作者:行者123 更新时间:2023-12-05 00:37:08 26 4
gpt4 key购买 nike

给定表达式 ^(?<res>a).*(?<res>c) 和测试字符串 abc ,期望命名组 res 连接两个找到的值并获得 ac ,但得到了最新的变化 - c

C# 的正则表达式类有什么方法可以支持正则表达式中命名组的连接?

相关问题是 Regex issue with named captured pairs ,并且它说 Perl/PCRE 不支持重复的命名对,但在这里我得到了 .NET,并寻找它的特定魔法使正则表达式返回一个包含来自不同部分的两个找到值的单个匹配项字符串(即 abbbbbcdef 应返回 ac)。

多次调用正则表达式或在代码中加入结果组现在不是一个可以接受的解决方案 - 希望在正则表达式中完成整个工作。

最佳答案

非唯一组名的目的仅仅是为了在捕获部分字符串时提供更大的灵活性。获取捕获的部分并以不同的方式重新组装它们是您在正则表达式匹配后所做的事情 - 通常使用 Replace 方法:

string s0 = @"abbbbbcdef";
string s1 = Regex.Replace(s0, @"^.*(a).*(c).*$", "$1$2");
Console.WriteLine(s1);

输出:
ac

这个问题让我想起了我见过的其他人,人们希望正则表达式“跳过”他们不感兴趣的字符串部分——也就是说,消耗一些部分而不是其他部分。在我熟悉的任何正则表达式风格中都无法做到这一点。

关于.net - .NET 中的正则表达式 : joining duplicate named captured groups,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7273606/

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