C# 如何在C中匹配和捕获正则表达式#

C# 如何在C中匹配和捕获正则表达式#,c#,regex,C#,Regex,我有一个这样的正则表达式 something (.*) someotherthing 如何使用Regex对象匹配整个表达式并获取捕获值?Regex.match Regex.Match 如果可以使用$1获取该组,则可以使用$0获取整个表达式 这适用于大多数正则表达式变体(可能是\0或%0或其他),而不仅仅是C 类似地,应该使用0作为参数来返回整个匹配项,否则看起来它包含匹配项 同样值得注意的是,为了确保测试字符串与整个表达式匹配,通常最好使用^作为前缀,使用$作为后缀,这是字符串开头和结尾的零

我有一个这样的正则表达式

something (.*) someotherthing
如何使用Regex对象匹配整个表达式并获取捕获值?

Regex.match

Regex.Match


如果可以使用
$1
获取该组,则可以使用
$0
获取整个表达式

这适用于大多数正则表达式变体(可能是
\0
%0
或其他),而不仅仅是C

类似地,应该使用0作为参数来返回整个匹配项,否则看起来它包含匹配项



同样值得注意的是,为了确保测试字符串与整个表达式匹配,通常最好使用
^
作为前缀,使用
$
作为后缀,这是字符串开头和结尾的零宽度位置锚。(在多行模式下也是行的开始/结束。)

如果可以使用
$1
获取该组,则可以使用
$0
获取整个表达式

这适用于大多数正则表达式变体(可能是
\0
%0
或其他),而不仅仅是C

类似地,应该使用0作为参数来返回整个匹配项,否则看起来它包含匹配项



同样值得注意的是,为了确保测试字符串与整个表达式匹配,通常最好使用
^
作为前缀,使用
$
作为后缀,这是字符串开头和结尾的零宽度位置锚。(在多行模式下也是行的开始/结束。)

以下是我认为您要求的示例:

Match m = Regex.Match( "something some stuff in the middle someotherthing", 
         "something (.*) someotherthing" );
if ( m.Success )
   Console.WriteLine( "groups={0}, entire match={1}, first group={2}", 
                      m.Groups.Count, m.Groups[0].Value, 
                      m.Groups[1].Value );

下面是一个我认为你要求的例子:

Match m = Regex.Match( "something some stuff in the middle someotherthing", 
         "something (.*) someotherthing" );
if ( m.Success )
   Console.WriteLine( "groups={0}, entire match={1}, first group={2}", 
                      m.Groups.Count, m.Groups[0].Value, 
                      m.Groups[1].Value );