Regex и удалить не работают должным образомC#

Место общения программистов C#
Anonymous
Regex и удалить не работают должным образом

Сообщение Anonymous »

У меня есть некоторые сомнения относительно того, что я делаю. Я пытаюсь удалить фрагменты текста, например букву "n", где она находится между "(" и " " или наоборот, и во многих других случаях. Я использую регулярное выражение, чтобы найти шаблон, но как я могу удалить только букву?

Я использовал это: "[( ]" + mystring + @"[)= \-\*]"

например это:

Код: Выделить всё

foreach(Match mm in Regex.Matches(SourceCode, @"[( ]" + mystring + @"[)= \-\*]"))
{
int lng= mm.Length;
SourceCode = SourceCode.Remove(mm.Index + 1, lng- 2);
}
Проблема в том, что он вычисляет индекс для исходного текста, и если будет удалена буква «n», индекс для следующего совпадения будет декалирован на единицу и будет удален не с того места. Действительно странно.

Кто-нибудь знает, что он это делает?

Или, может быть, у вас есть идея получше?

Изменить:

Я не могу использовать замену. Допустим, я хочу удалить «n», где n имеет вид «(n», поэтому, если я использую замену, будут удалены все те три символа, которые мне не нужны. Если я использую замену только для n, она удалит неправильную букву, например «n», из «и». . . .

Подробнее здесь: https://stackoverflow.com/questions/815 ... g-properly

Вернуться в «C#»