我有一个简单,非常简单的正则表达式模式,如:
private static string FORMAT_REGEX = @"\{(\d)\}";
我有一个像I have {323} dollars
这样的字符串,我只想获得323
我用的时候:
Regex regex = new Regex(FORMAT_REGEX);
Match match = regex.Match(format);
if (match.Success)
{
return match.Groups[0].Value; // here comes {323} instead of 323
}
我确信我的模式是错误的。什么是正确的模式?
答案 0 :(得分:2)
答案 1 :(得分:1)
Groups[0]
将始终返回整个捕获。您需要获得Groups[1]
的价值。
此外,您需要捕获多个数字:
@"\{(\d+)\}";
// not
@"\{(\d)\}";
请参阅MSDN: Match.Groups Property上的示例,了解此示例,您可以捕获多个组以及整个字符串。在该示例中,他们使用\d{n}
来准确捕获n
个数字。