이맥에서 9 개 이상의 정규식 캡처 그룹을 어떻게 사용합니까?


6

emacs의 replace-regex 명령을 사용하여 값의 오랜 시퀀스를 다른 형식으로 변환하려고합니다. 추출 할 값이 9 개 이상이므로 \ 1 - \ 9 역 참조로 충분하지 않습니다.

어떻게 emacs에서 9 개 이상의 캡처 그룹을 참조 할 수 있습니까? 명명 된 그룹을 사용할 수 있습니까? 그렇다면 어떻게?

답변:


7

Emacs 23부터는 Lisp 코드를 정규 표현식 대체 텍스트 . 이렇게하면 더 많은 역 참조를 사용할 수 있습니다. 함수 match-string 번호가 매겨진 역 참조를 반환합니다.

\1 … \9 \,(or (match-string 10) "")

이맥스 22 이후로 역 참조를 할 필요가없는 괄호로 둘러싸인 그룹이 정규식에 있다면, \(?:…\) (Emacs는 이것을 수줍은 그룹 ).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.