2011-08-01 3 views
0

다음 줄에서 dog와 cat이라는 단어를 일치시키는 방법.이멕스 정규 표현식을 사용하여 패턴 뒤의 줄 부분을 일치시키는 방법

The dog 

The cat 

줄의 시작 부분에있는 단어 ("The")는 동일하게 유지됩니다. "dog"와 "cat"이라는 단어가 바뀌며 일치 할 단어입니다.

정규식은 단어 "The"다음에 "The"가 아닌 단어와 일치해야합니다.

+1

질문을 명확히 할 수 있습니까? "개"또는 "고양이"와 항상 일치합니까? 앞의 단어는 항상 "The"일까요? 즉, 질문을 일반화 할 수 있습니까? – kevlar1818

+0

정규 표현식을 대화식으로 검색하는 것에 대해 이야기하고 있는지 여부를 명확히해야합니다 (예 : 'M-x replace-regexp' 또는 프로그래밍 방식으로. 후자 인 경우, Michael Markert의 대답이 도움이 될 것입니다. – sanityinc

+0

정규식은 프로그램에서 사용되며 대화식으로 사용되지는 않습니다. –

답변

5

이 당신이 원하는 수행해야합니다 The

The \(\w+\) 

단어는 다음 \1 그룹이다.

(replace-regexp "\\(\\w+\\)" "\\1") 
+0

작은 정보를 추가하기 위해 프로그램에서 "\\ (\\ w + \\)"및 "\\ 1"으로 사용해야합니다. –

+0

맞지 않습니다. 문자열에는 "\\\ (\\ w + \\\)"및 "\\ 1"이어야합니다. 그냥 "\\ ("으로 평가 될 것 "012") –

+0

) 두 번째 생각에 : 당신은 아마도 도망쳐 서 물었을 것입니다. –

2

이맥스 regexps '에있어 elisp에서

은 제로 폭 주장을 특징으로하지 않습니다 그래서 당신 수와 일치하지 않는하지 않는 것이 그 패턴에 중요한 경우, 텍스트를 앞.

물론 그룹핑을 사용하여 관심있는 일치하는 문자열의 부분을 분리 할 수 ​​있습니다 (Michael Markert의 대답에 따라).

+0

제로 너비 어설 션에 대한 정보 공유에 대해서는 +1 ( –

관련 문제