답변:
일반적으로 역 참조는 첫 번째 캡처 그룹 (괄호 안의 패턴의 첫 번째 일치)에 대해 $1
또는 \1
(백 슬래시 1)이며 실제로 Sublime은 두 구문을 모두 지원합니다. 그래서 시도하십시오 :
my name used to be \1
또는
my name used to be $1
또한 원본 캡처 패턴은 다음과 같습니다.
my name is (\w)+
이름이 잘못되어 전체 이름이 아닌 이름의 마지막 문자 만 캡처합니다. 이름의 모든 문자를 캡처하려면 다음 패턴을 사용해야합니다.
my name is (\w+)
$0
는 Sublime Text 2/3에서 커서를 스 니펫 확장에서 나가기 위해 사용됩니다. 스 니펫에 대한 추가 정보 .
$0
전체 정규식 일치입니다. $1
첫 번째 캡처 그룹입니다.
중요 :
( )
검색 문자열에 괄호를 사용하십시오
이전 답변은 정확하지만 강조해야 할 중요한 사항이 있습니다! 모든 검색 문자열에서 일치하는 부분 당신이 당신에 사용하려는 대체 문자열을 해야 둘러싸인 ( )
괄호 그렇지 않으면이 일치하는 부분과 같은 정의 된 변수에 액세스 할 수 없습니다, $1
, $2
또는 \1
, \2
등
예를 들어 'em'을 'px'로 바꾸고 숫자 값은 유지하려고합니다.
margin: 10em; /* Expected: margin: 10px */
margin: 2em; /* Expected: margin: 2px */
margin: $1px
또는margin: \1px
margin: ([0-9]*)em
// 괄호margin: [0-9]*em
올바른 사례 예 :margin: ([0-9]*)em
검색 문자열 사용 (괄호 포함). 다음과 같이 원하는 일치 세그먼트 (예 : $1
또는 \1
)를 ( )
괄호로 묶습니다.
margin: ([0-9]*)em
(괄호)margin: $1px
또는margin: \1px
margin: 10px;
margin: 2px;
부정확 한 사례 예 :margin: [0-9]*em
검색 문자열 사용 (괄호없이). 다음 정규식 패턴은 원하는 줄과 일치하지만 일치하는 세그먼트는 $1
또는 같은 문자열로 대체 된 문자열에서 사용할 수 없습니다 \1
.
margin: [0-9]*em
(괄호없이)margin: $1px
또는margin: \1px
margin: px; /* `$1` is undefined */
margin: px; /* `$1` is undefined */
$_SESSION[(\w+)
않습니까? 감사합니다
캡처 그룹을 9 개 이상 사용하는 경우 구문을 사용해야합니다 ${10}
.
$10
나 \10
또는 \{10}
것입니다 하지 작동합니다.
1
당신이 같은 괄호를 사용하는 데 필요한 두 번째 캡처 그룹에 ${2}1
; 21 달러는 존재하지 않는 21 번째 캡처 그룹을 나타냅니다.
보면 검색에 대한 숭고한 텍스트 비공식 문서의 기사 및 바꾸기 처럼, 그것은 보이는 +(.+)
당신이 할 수 있습니다 캡처 그룹은 ...하지만 난 개인적으로 사용 (.*)
하고 잘 작동. 당신이 말하는 방식으로 교체하려면이 좋아할만한 포럼에서 대화 , 특히 이 게시물 단순히 사용 말한다 $1
첫 번째 캡처 그룹을 사용합니다.
그리고 그림이 말보다 낫기 때문에 ...
$0
?