У меня есть регулярное выражение, которое ищет большую кодовую базу для использования определенного токена, который используется как тип или переменная. Допустим, токен «foo», и я хочу найти его как отдельную работу.
Мое первоначальное регулярное выражение:
foo$|foo\s|foo\[|foo\*|<foo|foo>
Совпадения: foo в конце строки, foo с пробелом, указатель foo, foo в коллекции и т. Д ...
Я хочу исключить экземпляров, которые находятся в блоке комментариев C ++. Например, в приведенном ниже примере.
// consume the foo and read another.
Я пытался изменить регулярное выражение, используя отрицательный взгляд, но, похоже, это не сработало
(?!\/\/).*(foo$|foo\s|foo\[|foo\*|<foo|foo>)
Кто-нибудь знает, как сделать это в регулярном выражении?
Обновление:
Я просто хочу отфильтровать строки, которые могут иметь две косые черты, предшествующие целевому шаблону. Меня не волнуют вложенные комментарии, комментарии в стиле C (/ * * /) или что-нибудь, занимающее несколько строк.