在c#中,只从包含括号{的字符串中获取整数值

本文关键字:字符串 获取 整数 包含括 | 更新日期: 2023-09-27 18:02:44

我有一个简单的,非常简单的正则表达式模式,如:

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
        }

我确定我的模式是错误的。正确的模式是什么?

在c#中,只从包含括号{的字符串中获取整数值

只是一个小错误。

您需要在'd后面加一个加号,像这样:'d+以捕获所有数字。

你需要得到第一组:match.Groups[1].Value

编辑:

这是一个。net fiddle

Groups[0]将始终返回整个捕获。您需要获取Groups[1]的值。

还需要捕获多个数字:

@"'{('d+)'}";
// not
@"'{('d)'}";

请参阅MSDN: Match中的示例。Groups属性就是一个例子,您可以在其中捕获多个组以及整个字符串。在这个例子中,他们使用'd{n}来捕获n数字。