fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
2 minut

Regex w Visual Studio – lazy mode


23.02.2009

Bardzo przydatną funkcjonalnością w Visual Studio jest wyszukiwanie z wykorzystaniem wyrażeń regularnych:

Przyzwyczajeni do .NETowej składni języka możemy natknąć się na pewien problem. Otóż standardowy tryb działania tego silnika w VS (jak i chyba wszystkich popularnych silników regex?) to tryb zachłanny, czyli “greedy”. Polega on na dopasowaniu tekstu o maksymalnej długości. Składnią służącą do jego uzyskania jest gwiazdka *, tak samo jak w standardowych regexach. Jeżeli jednak napotkamy potrzebę użycia trybu “lazy”, czyli znalezienie minimalnego tekstu dopasowującego się do wzorca, z przyzwyczajenia możemy użyć wyrażenia *?, jak ma to miejsce w wyrażeniach .NETowych. I tu czeka nas niespodzianka, ponieważ podane wyrażenie nam nie zadziała. Kiedyś założyłem, że zmuszenie VS do “leniwego” wyszukiwania jest po prostu niemożliwe. Niedawno jednak zacząłem zgłębiać temat i okazało sie, że cały czas miałem rozwiązanie przez oczami… Po zauważeniu opcji w menu:

wszystko stało się jasne. Leniwy odpowiednik * to @, leniwy odpowiednik + to #. Więcej w MSDN: Regular Expressions (Visual Studio).

0 0 votes
Article Rating
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Marcin Ż.
Marcin Ż.
15 years ago

Nawet Tobie, staremu resharperowcowi zdarza sie korzystac z “Find in Files…”? ;)

Procent
15 years ago

Niestety czasami trzeba:). Z różnych względów… jednym z nich jest niestety bug w R# w funkcjonalności “Find all usages” – kilka razy zdarzyło mi się, że nie wskazał mi nawet tak banalnego przypadku jak wywołanie własnej prywatnej metody zawarttej w tym samym pliku. Od tamtej pory przestałem bezgranicznie ufać JetBrains i zanim zmodyfikuję coś dużego – wolę upewnić się takim właśnie brute forcem:)

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również