Мне нужно найти следующие строки поиска и заменить его новым значением.Найти и заменить с помощью регулярных выражений
string searchString1 = "#TEST1#";
string searchString2 = "#TEST1#AT#";
Как достичь этого с помощью C#/регулярных выражений?
Мне нужно найти следующие строки поиска и заменить его новым значением.Найти и заменить с помощью регулярных выражений
string searchString1 = "#TEST1#";
string searchString2 = "#TEST1#AT#";
Как достичь этого с помощью C#/регулярных выражений?
Проверьте 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);
Я не знаю, почему вы должны использовать регулярные выражения для этого.
Что именно
string replaced = inString.Replace(searchString1,"replacement1")
.Replace(searchString2,"replacement2");
, не делать то, что вы хотите?
Я предположил, что это всего лишь примеры, что ему нужно сопоставить шаблоны типа регулярных выражений. –
Сопоставьте регулярное выражение, получите начальный индекс и длину совпадения, удалите старый и сплайсинг в новом. Повторение.
Вы также можете сделать все ваши согласования сразу, хранения начинается и длины, а затем применяя сплайсинг в обратном направлении (так, чтобы не повлиять на показатели)
Еще лучше! ... –
Спасибо за пример кода, но проблема с этим apporach заключается в том, что первая строка кода заменяет все экземпляры «TEST1 #», включая «# TEST1 # AT», так как она также содержит токен «# TEST1». Мне нужна замена соответствия шаблона exaxt ... это возможно? – user40907
Выбранный пункт - просто измените порядок двух операторов. – luke