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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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