替换给定字符串中指定标记之间的文本

时间:2013-05-09 19:19:18

标签: c# .net regex

在标签[[text]]之间替换文本的最佳方法是什么?例如" X"使用正则表达式|

例如:

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

因此我希望:

this X my text X

我有类似的东西:

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

2 个答案:

答案 0 :(得分: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()));

将返回:

si 我的文字 txet wen

答案 1 :(得分:0)

尝试使用此正则表达式

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

并使用

rgx.Replace(yourString, "x");