source

IntelliJ에서의 RegEx 백레퍼런스

factcode 2023. 1. 19. 21:01
반응형

IntelliJ에서의 RegEx 백레퍼런스

IntelliJ의 Find-and-Replace 기능을 사용하여 다음과 같은 변환을 수행합니다.

// Replace this
model.put('foo', 'bar')
// With this
model['foo'] = bar

다음을 시도했습니다.

: ★★★★★★★★★★★★★★★★★★★★★★」model.put\((.*),(.*)\) " " " 상 " :model\[\\1\] = \\2

하지만 인텔리지는 이 모든 걸핏하면\\1 ★★★★★★★★★★★★★★★★★」\\2참고 자료로 사용합니다.저도 슬래시를 한번 해봤지만 그것도 효과가 없어요.

는 IntelliJ 용 inte를 사용합니다.$1를 참조해 주세요.

인텔리J 지원:

정규 표현과 그 구문에 대한 자세한 내용은 java.util.regex 문서를 참조하십시오.백 레퍼런스는 \n 형식이 아닌 $n이어야 합니다.

'아, 아, 하다, 하다.$1로로 합니다.$n를 참조해 주세요. \1이치노

IntelliJ 2016에서는 앱 내 설명서가 오해의 소지가 있습니다.다음은 전문 문서의 더 나은 인용문입니다.

일치하는 하위 문자열을 현재 정규 표현식 외부에서 참조해야 하는 경우(예: 다른 정규 표현식을 대체 문자열로 사용), 달러 기호($num, 여기서 num = 1 .n)를 사용하여 검색할 수 있습니다.

출처 : 2016.1 정규 표현 구문, 힌트 & 요령

Idea 9.0(및 기타 버전)의 regex에 대한 제품 내 상황별 도움말이 올바르지 않은 것 같습니다.다음과 같이 기술되어 있습니다.

백 레퍼런스\nn번째 캡처 그룹이 일치한 것은

하지만 이전 답변에서 언급했듯이 제 경험상으로는 \n이 아니라 \n의 백레퍼런스를 위해 \n이라는 것을 알 수 있습니다.

이 상황별 도움말은 "텍스트 바꾸기" 대화 상자의 "정규 표현" 라디오 옵션 옆에 있는 '도움말' 링크를 클릭하면 나타납니다.

IntelliJ IDEA / 레퍼런스 / 정규 표현 구문 레퍼런스


서브 표현식을 대조하고, 그 일치를 기억합니다.동일한 정규 표현 내에서 일치하는 하위 문자열을 사용해야 하는 경우 백레퍼런스(\num, 여기서 num = 1 .n)를 사용하여 가져올 수 있습니다.일치하는 하위 문자열을 현재 정규 표현식 이외의 어딘가에서 참조해야 하는 경우(예: Replacement 필드의 다른 정규 표현식), 달러 기호($num, 여기서 num = 1 .n)를 사용하여 검색할 수 있습니다.하위 표현식에 괄호 문자를 포함해야 하는 경우 "(" 또는 "")를 사용합니다.

언급URL : https://stackoverflow.com/questions/1421797/regex-backreferences-in-intellij

반응형