gpt4 book ai didi

.net - 你如何获得正则表达式的组名?

转载 作者:行者123 更新时间:2023-12-01 01:35:50 26 4
gpt4 key购买 nike

我有一个正则表达式,就像这样:

(?<one-1>cat)|(?<two-2>dog)|(?<three-3>mouse)|(?<four-4>fish)

当我尝试在 .Net 应用程序中使用此模式时,它失败了,因为组名中包含一个“-”。

因此,作为一种解决方法,我尝试使用两个正则表达式,第一个:
(?<A>cat)|(?<Be>dog)|(?<C>mouse)|(?<D>fish)

将匹配我正在寻找的原始案例到我可以控制的组名中。
然后,我打算使用该正则表达式中正确匹配的组名,如下所示:
(?<A>one-1)|(?<Be>two-2)|(?<C>three-3)|(?<D>four-4)

我会这样做,通过查找与此模式匹配的字符串并确定组名是否相等。

我知道这似乎有点令人费解。感谢提供的任何帮助。

最佳答案

?<one-1>不起作用,因为 -用于平衡组:

Deletes the definition of the previously defined group name2 and stores in group name1 the interval between the previously defined name2 group and the current group. If no group name2 is defined, the match backtracks. Because deleting the last definition of name2 reveals the previous definition of name2, this construct allows the stack of captures for group name2 to be used as a counter for keeping track of nested constructs such as parentheses. In this construct, name1 is optional. You can use single quotes instead of angle brackets; for example, (?'name1-name2').



你不能逃避那个减号,所以你必须使用另一个分隔符。

关于.net - 你如何获得正则表达式的组名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2185232/

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