2014-10-22 2 views
0

У меня есть много кода и вы хотите найти и заменить какой-либо текст в нем. Я хочу заменить все совпадения, но исключая те, которые содержатся в комментариях. Предположим, я хочу найти и заменить строку «текст» в моем коде. Пример:Регулярное выражение для комментариев

Console.WriteLine("text"); // must be replaced 
// some text /* does not need to be replaced because this string begins from "//" */ 

К сожалению, я не знаю, как это сделать с помощью регулярных выражений. Может кто-нибудь мне помочь?

+0

что бы выход во второй строке? – vks

+0

Вторая строка не найдена. Regex i wanna get не соответствует «text» во второй строке – Itsme

+0

Какой инструмент вы используете? – nhahtdh

ответ

-1
^[^\/]+(\/\/.*)\n 

Я думаю, что это должно удовлетворить ваши потребности

+0

отредактирован так, чтобы он фиксировал каждую строку отдельно. – Vajura

+0

Вам не хватает точки. OP хочет заменить 'text', а не строку с комментарием. – nhahtdh

0

Going строго по требованию «найти text, если не окружен // и \n», это было бы регулярное выражение, чтобы использовать и обрабатывать только захват группы 1. Но обратите внимание (как я уже сказал в комментарии), что комментарии-разделители внутри строки не учитываются, как показывает 3-я строка в debuggex demo. nhahtdh правильно говорит о том, что функция обратного вызова заменила бы путь сюда, затем вы можете захватить любую строку и продолжить расследование в обратном вызове.

\/\/[^\n]*(?:\n|$)|(text) 

Regular expression visualization

Debuggex Demo

Смежные вопросы