Visual Studio znajdź i zamień wyrażenia regularne pomoc

Chciałbym zamienić kilka poleceń typu:

int someNum = txtSomeNum.Text; 
int anotherNum = txtAnotherNum.Text;

Z

int someNum = Int32.Parse(txtSomeNum.Text);
int anotherNum = Int32.Parse(txtAnotherNum.Text);

Czy istnieje dobry sposób, aby to zrobić z Visual Studio ' S Find and Replace, używając wyrażeń regularnych? Nie jestem pewien, jakie byłoby Wyrażenie regularne.

Author: David Hodgson, 2010-01-24

4 answers

Myślę, że w Visual Studio można oznaczyć wyrażenia klamrami {txtSomeNum.Text}. Następnie w zastępstwie możesz się do niego odnieść za pomocą \1. Więc linia zastępcza byłaby czymś w rodzaju Int32.Parse(\1).


Update: via @ Timothy003

VS 11 usuwa składnię {} \1 i używa () $1

 59
Author: Mark Wilkins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-05 13:28:51
 7
Author: solomonbicakcic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-03 10:32:25

Tego szukałem:

Find: = {.*\.Tekst}

Replace: = Int32.Parse (\1)

 6
Author: David Hodgson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-24 02:47:45

Lepszym regex dla oryginalnego problemu byłoby

Znajdź expr.: {: i\.Tekst}

Zastąp expr.: Int32Parse (\1)

Zobacz: http://msdn.microsoft.com/en-us/library/2k3te2cs%28v=vs.100%29.aspx

Dla definitywnego przewodnika do regex w VS.

Niedawno ukończyłem formatowanie innego projektu programisty C++ z piekła rodem. Całkowicie i arbitralnie wpisywał lub pomijał losowo spacje i tabulatory, wcięcia (lub nie) i obłąkany poziom zagnieżdżania nawiasów, taki, że nikt z nas przyzwyczajony do standardów kodowania jakiegokolwiek typu nie mógł nawet zacząć czytać kodu zanim zacząłem. Używane regex szeroko do znalezienia i skorygowania nieprawidłowych konstrukcji. W ciągu kilku godzin udało mi się rozwiązać główne problemy w około 125 000 linii kodu, nie patrząc na większość z nich. W jednym pojedynczym find/replace zmieniłem ponad 22 000 linijek kodu w 125 plikach, łączny czas poniżej 10 sekund.

Szczególnie przydatne konstrukcje w regex:

:b + = = jeden lub więcej spacji i / lub tabulatorów.

: i = = dopasowuje nazwę zmiennej w stylu C lub słowo kluczowe (tj. while, if, pick3, bNotImportant)

: Wh = = znak spacji.; nie tylko puste lub tabulator

: Sm = = dowolny z symboli arytmetycznych ( + , -,>,=, itd.)

: Pu = = dowolny znak interpunkcyjny

\N = = podział linii (przydatny do znalezienia miejsca, w którym wstawił 8 lub 10 pustych linii)

^ == dopasowuje początek linii ($to match end)

Chociaż byłoby miło dopasować jakiś inny standard regex (duh), okazało się, że wiele rozszerzeń MS jest niezwykle przydatnych do wyszukiwania bazy kodu, na przykład nie trzeba definiować 'identyfikatora' setki razy jako "[a-Za-z0-9]+", zamiast używać ":i".

 2
Author: Ken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-15 17:38:22