我正在处理正则表达式(正则表达式),但没有找到确切的输出。 我想找到两个花括号之间的值
{ Value } = value
我使用以下模式但没有得到确切的输出;它不会删除第一个“{”......
string pattern = "\\{*\\}";
如果我的值为{girish}
它返回{girish
而不是我想要girish
作为输出......
答案 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)
尝试使用此模式:
\{(.*)\}
反斜杠可能需要进一步转义。