2013-05-09 3 views
1

что такое лучший способ заменить текст между тегом [[текст]] с помощью примера «X» с помощью regex |заменить тексты между указанным тегом в заданной строке

, например:

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

и в результате я хотел бы иметь:

this X my text X 

Я triend с чем-то вроде этого:

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

ответ

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

EDIT

что, если я хочу, чтобы перебирать каждый соответствует

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 вэнь

+0

спасибо и что, если я хочу, чтобы перебирать каждый матч? – gruber

+0

@gruber см. Редактирование .. – I4V

0

Попробуйте это регулярное выражение вместо

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

И использовать

rgx.Replace(yourString, "x"); 
Смежные вопросы