我想在{}之间找到值

时间:2010-05-17 05:56:22

标签: .net asp.net regex

我正在处理正则表达式(正则表达式),但没有找到确切的输出。 我想找到两个花括号之间的值

{ Value } = value

我使用以下模式但没有得到确切的输出;它不会删除第一个“{”......

string pattern = "\\{*\\}"; 

如果我的值为{girish} 它返回{girish

而不是我想要girish作为输出......

3 个答案:

答案 0 :(得分:4)

我很惊讶这种模式起作用 - 它应该匹配零个或多个大括号。您需要在大括号内对内容进行分组:

string pattern = @"\{([^}]*)\}";

然后提取匹配组的内容。您尚未显示用于提取输出的代码,但在这种情况下,它将位于组1中。例如:

using System;
using System.Text.RegularExpressions;

class Test
{
    static void Main()
    {
        string pattern = @"\{([^}]*)\}";
        Regex regex = new Regex(pattern);
        string text = "{Key} = Value";
        Match match = regex.Match(text);
        string key = match.Groups[1].Value;
        Console.WriteLine(key);
    }    
}

答案 1 :(得分:3)

(?<=\{)(.*?)(?=\})

会告诉你两者之间的内容。

强制性说明:
请记住,如果括号是嵌套的,正则表达式将无法帮助 - 你需要堆栈的东西。

答案 2 :(得分:1)

尝试使用此模式:

\{(.*)\}

反斜杠可能需要进一步转义。