C# 正则表达式或拆分逻辑,用于在C中的大括号之间创建文本数组

C# 正则表达式或拆分逻辑,用于在C中的大括号之间创建文本数组,c#,regex,string,C#,Regex,String,我有一些字符串,需要提取大括号之间的文本,并将它们指定给字符串数组 其中一个字符串的示例为: select * from cable where exchange like '%{Enter Exchange:}%' and Type like '%{Enter Type:}%' 基于此示例,我希望提取Enter Exchange:并输入类型: 注意:这是一个只有两组{}的示例。可能会有更多或更少 这可能很简单,但我对正则表达式不是很熟悉,我很难将字符串拆分。如果其他地方有类似问题的链接,我很

我有一些字符串,需要提取大括号之间的文本,并将它们指定给字符串数组

其中一个字符串的示例为:

select * from cable where exchange like '%{Enter Exchange:}%' and Type like '%{Enter Type:}%'
基于此示例,我希望提取Enter Exchange:并输入类型:

注意:这是一个只有两组{}的示例。可能会有更多或更少

这可能很简单,但我对正则表达式不是很熟悉,我很难将字符串拆分。如果其他地方有类似问题的链接,我很乐意查看

谢谢。

此正则表达式将匹配{word}模式

\{.+?\}

此正则表达式将匹配{word}模式

\{.+?\}

此正则表达式将匹配{word}模式

\{.+?\}

此正则表达式将匹配{word}模式


\{.+?\}

您应该添加\:在尾端,Regex re=new Regex@{.+?\}?您应该添加\:在尾端,Regex re=new Regex@{.+?\}?您应该添加\:在尾端,Regex re=new Regex@{.+?\}?您应该添加\:在尾端,Regex re=new Regex@{.+?\}?
[TestMethod]
public void TestRegex()
{
    var input = "select * from cable where exchange like " +
                "'%{Enter Exchange:}%' and Type like '%{Enter Type:}%'";

    var result = Regex.Matches(input, @"%\{(.+?)\}%")
            .Cast<Match>()
            .Select(m => m.Groups[1].Value)
            .ToArray();

    result.Should().HaveCount(2);
    result.Should().Contain("Enter Exchange:");
    result.Should().Contain("Enter Type:");
}