Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#正则表达式:命名和编号的捕获组_C#_Regex - Fatal编程技术网

C#正则表达式:命名和编号的捕获组

C#正则表达式:命名和编号的捕获组,c#,regex,C#,Regex,给定 var re=new Regex(@“(?\w+)(x)\1\2”); 控制台写入线(关于IsMatch(“YXY”); 打印True,显示未命名的捕获组从1开始编号,然后命名的捕获组在单词后分配编号。这是正确的/预期的行为吗?至少MSDN这么说。在本文的较新版本中,这一点已得到确认,但更难找到此信息 似乎是一种奇怪的行为。从未尝试过你上面所做的事情,但我一直认为它是从左手边开始的,带有编号。@mastoj:是的。。。。我想可能也是…这就是为什么我要调查的原因@马克:如果使用其他编程语言

给定

var re=new Regex(@“(?\w+)(x)\1\2”);
控制台写入线(关于IsMatch(“YXY”);

打印
True
,显示未命名的捕获组从
1
开始编号,然后命名的捕获组在单词后分配编号。这是正确的/预期的行为吗?

至少MSDN这么说。在本文的较新版本中,这一点已得到确认,但更难找到此信息

似乎是一种奇怪的行为。从未尝试过你上面所做的事情,但我一直认为它是从左手边开始的,带有编号。@mastoj:是的。。。。我想可能也是…这就是为什么我要调查的原因@马克:如果使用其他编程语言的正则表达式,你应该小心。更常见的是,编号的组严格地从左到右,无论它们是否还有名称。
var re = new Regex(@"(?<name>\w+)(x)\1\2");
Console.WriteLine(re.IsMatch("yxxy"));