Регулярное выражение для комментария

Рейтинг: 1Ответов: 1Опубликовано: 21.10.2014

Здравствуйте! У меня такой вопрос. Возникла необходимость в большом количестве исходного кода найти и заменить строку "Text", за исключением этой строки в коментариях. Комментарии имеются в виду обычные два слеша // либо xml комментарии <!--.

Например:

Console.WriteLine("Text");  // нужно менять так как "Text" встречается в коде
// Text  - тут менять не нужно так как строка начинается с двух слешей
string str = "text"; // не нужно менять, так как text написано с маленькой буквы
<!-- some text --> // не нужно менять так как строка начинается с <!--

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

Ответы

▲ 1

Нужно ли заменять, если string s = "<!-- Text внутри строки в коде -->"; или return 1; // Text не сначала строки или <!-- Text (нет --> на той же строке)? Что насчёт триграфов ??/ (если они есть в языке) или другие возможности по вводу символов, например, \u003e? Если есть возможность, то лучше воспользоваться родным токенайзером, компилятором, который позволяет обходить код как структуру (например, дерево -- ast) программно, чтобы все крайние случаи охватить.