如何获得正则表达式捕获组的价值?

时间:2015-11-25 23:34:15

标签: c# regex

首先对tittle抱歉。不知道如何解释它。 这是我的代码:

string sString = @"docs/horaires/1/images/1"
var PickImage = Regex.Matches(sString, "/horaires/(.*?)/images/");
Console.WriteLine(PickImage[0].Value);

这将打印/horaires/1/images/而不是1。我尝试了所有RegexOptions,但没有在那里找到解决方案。 我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

这就是你需要的:

string sString = @"docs/horaires/1/images/1";
var pickImage = Regex.Match(sString, @"/horaires/(.*?)/images/");

if (pickImage.Success)
    Console.WriteLine(pickImage.Groups[1].Value);

在原始代码中,PickImage[0]Match对象,Value将返回完整匹配。您想要第一个捕获的组,因此请使用match.Groups[1].Value。请注意,Groups[0]始终包含完整匹配。

无需使用Matches您想要一个结果,而是使用Match