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 № 1OK, 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.