2010-08-18 8 views
17

을 내가이맥스 정규 표현식 빌더 교체 - 정규 표현식

"b\\(2\\)" 

볼 수있는 정규 표현식을 작성, 정규 표현식 빌더를 사용하여 텍스트

a1b2c3 

을 포함하는 이맥스 버퍼가 작동하지 않습니다 일치하는 항목을 강조 표시합니다 (b2, 2가 다른 색상으로 표시됨).

그러나 표현식을 replace-regexp에 붙여 넣으면 0과 일치합니다. 둘 다 따옴표 포함 여부. 일치를 얻기 위해 나는 몇 가지가 빠져 나가는 일이 일어나고, 그러나 확실하게 내가 뭔가 잘못하고 있어야합니다 거기에 생각

b\(2\) 

를 사용해야합니다. 수동으로 탈출해야하는 것은 반쯤을 패퇴시키는 것 같습니다.

답변

27

regexp-builder은 여러 구문으로 정규 표현식을 표시 할 수 있습니다. 기본적으로 Emacs Lisp 소스 (read 구문)를 넣기에 적합한 구문을 사용하기 때문에 정규 표현식은 큰 따옴표로 묶이고 백 슬래시는 두 배가됩니다. 대화식으로 사용하려면 C-c C-i (reb-change-syntax)의 string 구문을 선택하십시오.

+0

깔끔한입니다.이 힌트를 주셔서 대단히 감사합니다. – Hartmut

+2

나는이 대답에 정말 혼란 스럽습니다. 'string [5string] ' 이제 regexp-builder는 "\"[ "0-9]"로 "5"("여는 괄호 앞에있는 모든 숫자")를 찾습니다. 이제 내가'M-x 질의 - 바꾸기 \\ [[0-9] RET plop '을하면 아무것도 얻지 못합니다. 나는 \\ [\ [0-9 \] (빌더에서도 작동), 아무 것도 시도하지 않았습니다. 당신은 내가'C-c C-i '를 입력해야한다고 말하지 않았다 : 정규 표현식 빌더에서, 미니 버퍼에서 그것을 사용하는 동안, 다른 곳에서? Regexp-Builder에서 나온 것으로 밝혀졌지만, 내가 선택해야하는 4 가지 선택 사항 (read, rx, sregex, string)을 제공한다. ** 이맥스는 자신의 regexp 구문을 이해할 수 있도록 ** ** – yPhil

+0

와우 주석 구문 이스케이프 escape chars는 escape chars에 대해 논평하는 것입니다. :) "code"마커에서조차도, 도주합니까? – yPhil