줄 바꿈 문자와 일치하는 정규식은 무엇입니까?


22

Emacs 정규식에서 \n줄 바꾸기 문자와 일치하지 않습니다 \n.

  1. $줄 바꾸기 문자와 줄 바꾸기 문자 바로 앞의 문자 사이의 위치와 일치하는 것이 맞습니까? 예를 들어 문자열의 abc\n경우 와 ? $사이의 위치와 일치합니다 .c\n
  2. 일치하는 정규식은 무엇입니까 \n?

2
최소한의 실제 사례를 제공 할 수 있습니까? 어쩌면 나는 뭔가를 놓치고 있지만 (re-search-forward "\n")잘 작동합니다.
Dan

1
파일은 줄 바꿈에 \ r \ n을 사용할 수 있으며 abc\r\n대신 정규 표현식에 \ r을 포함해야 할 수도 있습니다 abc\n.
Jordon Biondo

@Dan : CM과 Mx가 모두 일치 \n합니다 n. 버퍼가 기본 모드입니다. 이것은 모든 텍스트에서 발생하므로 줄 바꿈 문자 나 문자 n가있는 텍스트 는 실례입니다.
StackExchange for All

@Jordon : CM과 Mx가 모두 일치 \r\n합니다rn
StackExchange for All

@Tim, 예. 대화식으로 입력하는 경우 인용 된 삽입, Cq Cm 및 Cq Cj를 각각 수행해야하기 때문에 가능합니다. lisp 문자열에 입력하면 \ r \ n을 입력 할 수 있습니다.
Jordon Biondo

답변:


19
  1. 예. 끝 뒤에 오는 줄 바꿈 문자 가 아니라 줄 끝$ 과 일치합니다 .
  2. 마십시오 C-M-s C-q C-j. 미니 버퍼 C-q의 기본 바인딩이며 quoted-insert미니 버퍼에서도 작동합니다. 이 표현식은 문자 그대로 개행을 검색합니다 C-j.

1
2. 줄 바꿈 문자를 Emacs 정규식에서 이스케이프 시퀀스로 표현할 수 없다고 말하는가?
모든

3
(예를 들어, 대화 형 또는 elisp을 통해 개행 검색 여부 (looking-at "^J")^ J가 삽입된다 C-q C-j)의 C-q C-j접근 방법은 항상 작동합니다. 그러나 elisp 함수를 사용할 때도 같은 기능을 looking-at \n합니다. M-: (looking-at "\n") RET커서가 줄의 끝 부분에 있으면 참으로 평가됩니다 (그리고 그 뒤에 줄 바꿈이 있습니다).
Kaushal Modi

2
언급하면 regexp-builder,를 사용 하면으로 새 줄을 인식 할 수 [\n]있습니다.
Nsukami _

@Nsukami_ : CM과 Mx가 모두 일치 [\n]합니다 n.
대한 StackExchange

13

Dan이 언급했듯이 개행과 일치하는 정규식 개행입니다.

elisp로 인용 된 문자열에 개행을 표시 할 수 있습니다 "\n". 이에 대한 특별한 추가 정규 표현식 특정 구문 은 없습니다 . 다른 리터럴 문자와 마찬가지로 줄 바꿈을 사용하면됩니다.

대화식 으로 정규 표현식을 입력하는 경우 C-qC-jkaushalmodi의 답변에서 알 수 있듯이 개행을으로 삽입 할 수 있습니다 .


1
감사! emacs (elisp는 아님)에서 Cq Cj가 줄 바꾸기 문자와 일치하는 유일한 방법입니까? \n줄 바꿈 문자와 일치하지 않습니다.
17:10에 모든

1
예. 보다 구체적으로, 개행을 입력하는 것이 대화식으로 대화식으로 입력 할 때 (개행에 대한 정규 표현식 이스케이프 시퀀스가 ​​없으므로) 개행 문자를 일치시키는 유일한 방법이며 C-q C-j프롬프트에서 개행을 입력하는 가장 안정적인 방법입니다.
phils
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.