/ / Jak w programie Visual Studio 2010 wyszukiwać tekst, który nie znajduje się w komentarzu jednowierszowym? - wyrażenie regularne, Visual-Studio, Visual-Studio-2010, wyszukiwanie, negacja wyrażenia regularnego

W programie Visual Studio 2010, w jaki sposób szukasz tekstu, który nie znajduje się w jednym wierszu komentarza? - regex, visual-studio, visual-studio-2010, search, regex-negation

Jak w Visual Studio 2010 wyszukiwać tekst, który nie znajduje się w komentarzu jednowierszowym? Np. jak znaleźć „bas” w:

foo bar bas

ale nie w

foo bar // bas

Pamiętaj, że powinien znaleźć linię:

foo / bar / bas

(edytuj) I nie powinien znaleźć linii:

foo // bar bas

Odpowiedzi:

6 dla odpowiedzi № 1

OK, więc zadałem to pytanie, żeby móc wrócić do własnej odpowiedzi.

Visual Studio nie wydaje się mieć typowegokonstrukcje typu „patrz w przód”, „patrz za siebie”. Ma podobne ujemne twierdzenie o zerowej szerokości. Składnia to ~(x), co oznacza, że ​​wzorzec nie pasuje do x w tym punkcie wzorca. Korzystając z tej konstrukcji, wymyśliłem coś takiego: ^(.~(//))*bas Co działa naprawdę dobrze, ale nie wyklucza linii, w której // to pierwsze dwa znaki w linii. Wersja, która to naprawi, to: ^~(//)(.~(//))*bas


6 dla odpowiedzi nr 2

W oknie dialogowym Znajdź programu Visual Studio spróbuj użyć tego wyrażenia regularnego (pamiętaj o wybraniu Zastosowanie: Wyrażenia regularne w opcjach wyszukiwania):

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

To powinno znaleźć wszystkie wystąpienia tego słowa bas które nie są poprzedzone //.

Należy zauważyć, że składnia wyrażeń regularnych programu Visual Studio różni się nieco od składni konwencjonalnej. Możesz znaleźć odnośnik TUTAJ.