В Visual Studio 2010, как вы ищете текст, который не находится внутри однострочного комментария? - PullRequest
8 голосов
/ 26 января 2012

В Visual Studio 2010, как вы ищете текст, который не находится внутри однострочного комментария?Например, как найти «bas» в:

foo bar bas

, но не в

foo bar // bas

Обратите внимание, что должна найти строку:

foo / bar / bas

(редактировать)И не должно найти строку:

foo // bar bas

Ответы [ 2 ]

6 голосов
/ 28 января 2012

Хорошо, я задал этот вопрос только для того, чтобы вернуться к своему собственному ответу.

Visual Studio, похоже, не имеет типичных упреждающих конструкций. У него есть аналогичное отрицательное утверждение нулевой ширины. Синтаксис ~ (x) означает, что шаблон не соответствует x в этой точке шаблона. Используя эту конструкцию, я придумал следующее: ^(.~(//))*bas, которое работает очень хорошо, но не исключает строку, где // - первые два символа в строке. Версия для исправления: ^~(//)(.~(//))*bas

6 голосов
/ 26 января 2012

В диалоговом окне «Найти» в Visual Studio попробуйте использовать это регулярное выражение (обязательно выберите Использовать: Регулярные выражения в параметрах поиска):

~(//[.:b]*)<bas>

Это должно найти все вхождения слова bas, которым не предшествует //.

Обратите внимание, что синтаксис регулярных выражений Visual Studio немного отличается от обычного синтаксиса. Вы можете найти ссылку ЗДЕСЬ .

...