Intellij IDEA에서 정규식을 사용하여 대문자를 소문자로 바꾸려면 어떻게해야합니까?


92

나는 이것을 검색하고 다른 정규식 파서로 수행하는 방법을 찾았습니다.

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

나는 이것들을 시도했지만 어느 것도 작동하지 않았습니다. 예를 들어 정규식을 사용하여 이것을 변경하고 싶습니다.

private String Name;
private Integer Bar = 2;

이에:

private String name;
private Integer bar = 2;

나는 다음과 같이 시도했다.

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

그들 중 누구도 작동하지 않습니다. intellij에서이 작업을 수행 할 수 있습니까, 아니면 누락 된 기능입니까? 이것은 교육 목적으로 만 사용되며 예제는 고안된 것입니다. 이것이 intellij에서 가능한지 알고 싶습니다.


3
정규식을 사용하려는 이유가 있습니까? IntelliJ에는이를 위한 단축키 가 있습니다 .
ajp15243 2014-06-10

@ ajp15243 이것은 교육 목적으로 만 사용되며 예제는 고안된 것입니다. intellij에서 이것이 가능한지 말 그대로 알고 싶습니다.
Daniel Kaplan

3
그럴 수 있지! 확인하고 싶었습니다. IntelliJ Regex Syntax reference를 찾았으며 의견에서 누군가가 귀하와 동일한 질문을하는 것으로 보입니다. 중재자가 대답했지만 (약간 오해했다고 생각합니다) IntelliJ의 정규식 구문에서는 이것이 가능하지 않음을 나타냅니다.
ajp15243 2014-06-10

항상 플러그인을 작성할 수 있습니다.
Meo

1
@tieTYT gaoagong는 꽤 좋습니다.
ajp15243 2014-06-11

답변:


174

IDEA 15에서는 아래 스위치를 사용하여 캡처 된 표현의 경우를 전환 할 수 있습니다. 이 버전이 출시 된 이후 공식적으로 문서화 되었습니다.

  • \l: 다음 문자의 대소 문자를 소문자로
  • \u: 다음 문자의 경우 위로
  • \L: \E대체 문자열이 끝날 때까지 다음 문자의 대소 문자를 소문자로 합니다.
  • \U: \E대체 문자열이 끝날 때까지 다음 문자의 대소 문자를 위로
  • \E: \U또는에 의해 시작된 케이스 변경의 끝을 표시합니다.\L

다음은 사용 예입니다 (문서가 명확하지 않기 때문에).

찾기 : (\ w + _) + (\ w +) 바꾸기 : \ L $ 1 $ 2 \ E

위의 내용은 etc 로 변환 FOO_BAR_BAZ됩니다 foo_bar_baz. $ 1은 첫 번째로 찾은 캡처 그룹 (괄호 안에 있음), $ 2는 두 번째 세트 등을 나타냅니다.

후손을 위해 : 이것은 처음 에 @gaoagong에 의해 보고 되었고 거기에 문서화 되었습니다 .


13

답변을 검색 한 후 @ ajp15243이 이미 위에 답변했음을 깨달았습니다. 현재 Intellij에서는 정규식 대체 기능을 사용하여 대소 문자를 변경하는 방법이 없습니다. 다음 URL에서 기능에 대한 짧은 토론이 있습니다.

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

여기에서 Youtrack 이슈의 기능에 투표 할 수도 있습니다.

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

정규식 Intellij 플러그인이 있지만 아쉽게도 소문자 및 대문자를 지원하지 않습니다.

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

파일을 올바르게 바꾸려면 perl 프로그램을 통해 파일을 실행해야 할 수도 있습니다.


1
Youtrack에 따르면 IntelliJ 15 버전에 추가되고 있습니다
Kevin Sheehan

6

저는 Idea Vim 플러그인을 사용하기 시작했고 Vim 에서 이와 같은 작업을 수행하는 방법을 배웠습니다. 이렇게하면 Idea 외부에서 이러한 기술을 재사용 할 수 있습니다.

요청한 작업을 수행하는 vim 명령이 있습니다.

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

IDE 내에서 입력되는 정규식. 정규식 패턴을 Vim으로 이스케이프하려면 추가 슬래시가 필요합니다.

IDE 내

IDE 내에서 플러그인을 찾습니다. 여기에 이미지 설명 입력


2
여기에있는 사람들의 99 %는 VIM 에뮬레이션을 사용하지 않기를 원할 것입니다. 하지만 이미이 플러그인이 설치되어 있으므로 저에게 적합합니다. :)
Daniel Kaplan

1
알아요 .. Vi와 Vim은 IDE를 사용하는 모든 사람에게 처음에는 쓸모없는 것처럼 보입니다. 결국 서버에서 모두 만나고 Vi를 배우기 시작했습니다. 도구 사이를 이동할 때 사고 방식을 바꿀 필요가 없어서 마음에 듭니다.
chinto 2015

나는 아직 유창하지 않고 시작하고 있습니다. Vi를 사용하기 전보다 IDEAVim을 사용하여 Intellij-IDEA에서 더 생산적으로 편집하고 있다고 생각하십니까?
Daniel Kaplan

1
점점 더 .. 나는 이클립스를 잘했었다. 그런 다음 Intellij로 이동하여 대부분의 트릭을 배웠습니다. 그런 다음 Vim을 배우면 서버와 워크 스테이션에서 한 번에 잘할 수 있다는 것을 깨달았습니다. 또한 Vim이 텍스트 조작 및 탐색에서 훨씬 더 강력하다는 것을 알고 있습니다. 나는 여전히 리팩토링 및 참조 찾기와 같은 모든 IDE 전문 분야에 IDE 바로 가기를 사용하고 def 등으로 이동합니다.하지만 모드간에 전환하는 것은 매우 쉽습니다.
chinto 2015

1
이것은 vi 사용법을 아는 사람들에게 훌륭한 솔루션입니다. 복잡한 대체 작업이 필요할 때 IdeaVim을 켠 다음 다시 꺼서 Idea 고유의 ​​편집기 기능을 즐기십시오. 그래도 IdeaVim이 활성화되면 표시기가 있었으면합니다.
Mr. Lance E Sloan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.