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