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

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

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에서 가능한지 알고 싶습니다.



답변

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에 의해 보고 되었고 거기에 문서화 되었습니다 .


답변

답변을 검색 한 후 @ 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 프로그램을 통해 파일을 실행해야 할 수도 있습니다.


답변

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

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

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

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

IDE 내

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


답변