1

用正则表达式替换标签 [[ text ]] 之间的文本的最佳方法是什么?

例如:

this [[is]] my text [[new text]]

因此,我想拥有:

this X my text X

我有类似的东西:

string pattern = @"\[\[(.*)\]\]";
            Regex rgx = new Regex(pattern);
4

2 回答 2

3
string input = "this [[is]] my text [[new text]]";
string pattern = @"\[\[.+?\]\]";
var output = Regex.Replace(input, pattern, "X");

编辑

如果我想遍历每个匹配项怎么办

string pattern = @"\[\[(.+?)\]\]";
var matches = Regex.Matches(input, pattern)
                   .Cast<Match>()
                   .Select(m => m.Groups[1].Value)
                   .ToList();

还是你看起来像那样

string pattern = @"\[\[(.+?)\]\]";
var output = Regex.Replace(input, 
                           pattern, 
                           m=>String.Join("",m.Groups[1].Value.Reverse()));

这将返回:

这是我的文本txet wen

于 2013-05-09T19:21:53.823 回答
0

试试这个正则表达式

"\[\[(.[^\]])*\]\]"

并使用

rgx.Replace(yourString, "x");
于 2013-05-09T19:49:59.740 回答