2014-06-10 21 views
44

Mam googled to i okazało się, jak to zrobić z innych regex parserami:Jak używać wyrażenia regularnego do zastępowania wielkich liter małymi literami w Intelli IDEA?

http://vim.wikia.com/wiki/Changing_case_with_regular_expressions 
http://www.regular-expressions.info/replacecase.html 

Próbowałem te i ani pracy. Jako przykład, chcę użyć regex to zmienić:

private String Name; 
private Integer Bar = 2; 

do tego:

private String name; 
private Integer bar = 2; 

Próbowałem coś takiego:

replace: private (\S+) (\S+) 
with: private $1 $L$2 
with: private $1 \L$2 
with: <etc.> 

Żaden z nich nie działa. Czy można to zrobić w intelli, czy jest to brakująca funkcja? Jest to tylko do celów edukacyjnych i przykład jest wymyślony. Chcę tylko wiedzieć, czy można to zrobić w intelli.

+3

Czy istnieje powód, dla którego chcesz użyć wyrażenia regularnego? IntelliJ ma [skrót klawisza skrótu] (https://stackoverflow.com/questions/5265544/intellij-shortcut-to-convert-code-to-upper-or-lower-case), aby to zrobić. – ajp15243

+0

@ ajp15243 Jest to tylko w celach edukacyjnych, a przykład jest wymyślony. Dosłownie chcę wiedzieć, czy można to zrobić w intelli. –

+3

Wystarczy! Chciałem tylko upewnić się. Znalazłem odwołanie do składni [IntelliJ Regex Syntax] (http://www.jetbrains.com/idea/webhelp/regular-expression-syntax-reference.html), aw komentarzach ktoś szuka odpowiedzi na to samo pytanie. Odpowiedział moderator (i myślę, że jest lekko nierozumiany), ale odpowiedź wskazuje, że nie jest to możliwe przy użyciu składni regex IntelliJ. – ajp15243

Odpowiedz

78

W IDEA 15 jesteś w stanie skorzystać z poniższych przełączników, aby przełączyć przypadek przechwyconych wyrażeń. To jest teraz officially documented od czasu wydania tej wersji.

  • \l: obniżyć przypadek jednej następnego znaku
  • \u: UP przypadku jednej następnego znaku
  • \L: dolna przypadku kolejnych znaków aż \E lub zakończenia wymiany ciąg
  • \U: do przypadku kolejnych znaków aż do \E lub na końcu ciągu zastępowania
  • \E: Mark koniec zmiana przypadku inicjowana przez \U lub \L

Oto przykład użycia (zgodnie z dokumentacji nie jest jasne)

znaleźć (\ w + _) + (\ w +) wymienić: \ L $ 1 $ 2 \ PL

powyższy przekształci FOO_BAR_BAZ do foo_bar_baz itp w 1 $ dotyczy pierwszej grupy stwierdzono wychwytywania (w nawiasach), $ 2 do drugiego zestawu, itp

Dla dobra potomności: początkowo było to reported autorstwa @gaoagong i udokumentowane there.

13

Szukałem odpowiedzi, a następnie zdałem sobie sprawę, że @ ajp15243 już odpowiedział na powyższe. Obecnie w Intellij nie ma możliwości użycia funkcji wymiany regex w celu zmiany litery litery. Istnieje krótka dyskusja pod następującym adresem URL dotyczącym tej funkcji.

http://www.jetbrains.com/idea/webhelp/regular-expression-syntax-reference.html

Można też głosować na funkcję w Youtrack problemu tutaj:

http://youtrack.jetbrains.com/issue/IDEA-70451

Jest regex Intellij wtyczki, ale niestety również nie obsługuje małe i duże obudowę .

http://plugins.jetbrains.com/plugin/19?pr=idea

Może po prostu trzeba uruchamiać pliki za pomocą programu perla, aby zastąpić je poprawnie.

+1

Zgodnie z youtrack, jest to dodawane w wersji 15 IntelliJ –

5

Zacząłem używać wtyczki Idea Vim i nauczyłem się robić takie rzeczy w Vimie. W ten sposób mogłem ponownie wykorzystać te umiejętności poza Idea.

Oto polecenie vima, aby wykonać to, o co prosiłeś.

:%s/private\s\(\w*\)\s\(w*\)/private \1 \L\2/g 

Regex wprowadzany w ramach IDE. Dodatkowe ukośniki są wymagane, aby uciec przed wzorem regex do Vima.

Within The IDE

Znajdź wtyczkę od wewnątrz IDE. enter image description here

+1

Ogromne obejście, które prawdopodobnie nie pomoże 99% ludzi tutaj, ponieważ nie będą chcieli używać emulacji VIM. Ale, mam już zainstalowaną tę wtyczkę, więc to działa dla mnie :) –

+0

Wiem ... Vi i Vim wydają się złymi bezużytecznymi na początku każdemu, kto używa IDE. W końcu zacząłem uczyć się Vi po napotkaniu ich wszystkich na serwerach. Teraz podoba mi się to, że nie muszę zmieniać nastawienia, kiedy przechodzę pomiędzy narzędziami. – chinto

+0

Po prostu zaczynam od tego, nie płynnie. Czy uważasz, że bardziej wydajna jest edycja w Intellij-IDEA z IDEAVim niż przed użyciem Vi? –

Powiązane problemy