2010-11-09 4 views

ответ

3

Проверьте Regex объект, в частности Regex.Replace. Бонус example.

И какой-то код ...

// Assuming 'input' is the original string, and that 'replacementstring1' 
// and 'replacementstring2' contain the new info you want to replace 
// the matching portions. 

input = Regex.Replace(input, "#TEST1#AT#", replacementstring2); // This search pattern wholly 
                   // contains the next one, so 
                   // do this one first. 

input = Regex.Replace(input, "#TEST1#", replacementstring1); 
+0

Еще лучше! ... –

+0

Спасибо за пример кода, но проблема с этим apporach заключается в том, что первая строка кода заменяет все экземпляры «TEST1 #», включая «# TEST1 # AT», так как она также содержит токен «# TEST1». Мне нужна замена соответствия шаблона exaxt ... это возможно? – user40907

+0

Выбранный пункт - просто измените порядок двух операторов. – luke

0

Я не знаю, почему вы должны использовать регулярные выражения для этого.

Что именно

string replaced = inString.Replace(searchString1,"replacement1") 
          .Replace(searchString2,"replacement2"); 

, не делать то, что вы хотите?

+1

Я предположил, что это всего лишь примеры, что ему нужно сопоставить шаблоны типа регулярных выражений. –

0

Сопоставьте регулярное выражение, получите начальный индекс и длину совпадения, удалите старый и сплайсинг в новом. Повторение.

Вы также можете сделать все ваши согласования сразу, хранения начинается и длины, а затем применяя сплайсинг в обратном направлении (так, чтобы не повлиять на показатели)

Смежные вопросы