使用正则表达式在括号中获取文本

时间:2012-11-20 10:28:44

标签: c# .net regex

我必须解析一些字符串,如下所示:

"some text {{text in double brackets}}{{another text}}..."

如何使用正则表达式在C#中将双括号中的文本作为字符串数组提取?

3 个答案:

答案 0 :(得分:3)

使用此字符串

@"\{\{([^}]*)\}\}"

为您的正则表达式

var inputText = "some text {{text in double brackets}}{{another text}}...";

Regex re = new Regex(@"\{\{([^}]*)\}\}");

foreach (Match m in re.Matches(inputText))
{
    Console.WriteLine(m.Value);
}

答案 1 :(得分:3)

string input = @"some text {{text in double brackets}}{{another text}}...";
var matches = Regex.Matches(input, @"\{\{(.+?)\}\}")
                    .Cast<Match>()
                    .Select(m => m.Groups[1].Value)
                    .ToList();

答案 2 :(得分:1)

要从括号内获取实际文本,请使用命名组

var r = new Regex(@"{{(?<inner>.*?)}}", RegexOptions.Multiline);
foreach(Match m in r.Matches("some text {{text in double brackets}}{{another text}}..."))
{
    Console.WriteLine(m.Groups["inner"].Value);
}