如何获取正则表达式捕获组的值? [复制]
Posted
技术标签:
【中文标题】如何获取正则表达式捕获组的值? [复制]【英文标题】:How to get the value of a regex capture group? [duplicate] 【发布时间】:2016-02-28 22:29:35 【问题描述】:首先对标题感到抱歉。不知道怎么解释。 这是我的代码:
string sString = @"docs/horaires/1/images/1"
var PickImage = Regex.Matches(sString, "/horaires/(.*?)/images/");
Console.WriteLine(PickImage[0].Value);
这将打印/horaires/1/images/
而不是1
。我尝试了所有RegexOptions
,但没有找到解决方案。
我在这里做错了什么?
【问题讨论】:
使用PickImage[0].Groups[1].Value
我本来想把标题中的“patter”改成“pattern”,但是已经有同标题的帖子了。
@B.ClayShannon 那么你可以试着找一个更好的标题——我就是这么做的。
【参考方案1】:
这是你需要的:
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
。
【讨论】:
以上是关于如何获取正则表达式捕获组的值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章