2013-09-25 2 views
1

Emacs에서 regex에 관한 문제가 있습니다.
abcdef defemacs lisp의 regex 문제

가 난 단지 'ABC'다음 '데프'를 일치하는 정규식을 작성하려는 : 예를 들어
은 문자열이 있습니다. 말하자면, 나는 단지 'def'가 아니라 'abcdef'를 포착하고자합니다.
그리고 요점은 'abc'와 'def'사이에 'abc^def'와 같은 위치에있을 수 있기를 바랍니다. (^는 점을 나타냅니다.)
나는 Perl에서 그것을 할 수있는 방법이 있음을 기억하지만, ELISP에서 실행 가능한지 확실하지 않습니다.

+0

Emacs regexps에는 너비가 0 인 look-ahead/behind 어설 션이 없으므로 가능성이 가장 높은 Perl 정규 표현식 기능입니다. – phils

답변

3
(defun foo() 
    (when (re-search-forward "abc\\(def\\)" nil nil) 
    (goto-char (match-beginning 1)))) 

하지만 정말 이맥스 리스프에서 정규 표현식 매칭에 대해 읽어야합니다 - 노드 Regular Expressions에서 시작하여 Elisp 설명서에. 대답을 먼저 찾지 않고 기본적인 질문을 게시하는 것은 거의 변명의 여지가 없습니다.

StackOverflow는 프로그래밍 질문을 제기하고 답변하기위한 것으로, 은 코드를 보여 주려고 이미 코드를 사용합니다. 예기치 않은 코드가 무엇인지 말하십시오.

사람들은 일반적으로 도울 수 있지만, 도움을 요청하는 사람들은 최소한의 노력이 필요합니다.

+0

대단히 감사합니다 @ 드류, 이것이 내가 원하는 것입니다. 나는 elisp 초보자입니다. :) 조언을 주셔서 감사합니다. – ruanhao

+0

초보자가되는 데 문제 없습니다. 우리는 적어도 일부 지역에서는 Elisp 초보자입니다. 혹독한 경우에도 매뉴얼 섹션을 조금 읽으십시오. 그것은 매우 도움이되고 Emacs에서 regexps를 "얻는"것은 그것의 사용과 그것을 사용하는 재미를 크게 향상시킬 것입니다. – Drew