gpt4 book ai didi

c# RegEx 仅显示一次捕获

转载 作者:行者123 更新时间:2023-12-02 21:35:31 27 4
gpt4 key购买 nike

private String pattern = @"^{(.*)|(.*)}$";
ret = groups[0].Captures.Count.ToString(); // returns 1

不是应该返回 2 个捕获吗?因为我的正则表达式中有两个 ()

我的字符串例如:

{test1 | test2}

第一个捕获应该是 test1 和第二个 test2,但我得到了整个字符串作为返回,并且捕获计数为 1,这是为什么?

更新:

     Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection matches = rgx.Matches(_sourceString);
String ret = "";
foreach (Match match in matches)
{
GroupCollection groups = match.Groups;
ret = groups[0].Captures[0].Value;
}

return ret; //returns the whole string, but I've expected 'test1'

最佳答案

| 在正则表达式中具有特殊含义。 A|B 匹配 AB

要从字面上匹配 |,您需要对其进行转义:

@"^{(.*)\|(.*)}$";

关于c# RegEx 仅显示一次捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21484294/

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