2011년 3월 30일 수요일

[Emacs] re-builder: 정규표현식을 만들어 보자


M-x re-builder 를 실행해 보면 RE-Builder 라는 버퍼가 뜬다. 그리고 이 버퍼에는 기본적으로 "" 라는 것만 적혀 있다. 이 re-builder는 정규표현식(Regular Expression)을 만들어서 시험해 볼 수 있는 모드이다.

이 모드는 Emacs 사용자 혹은 Elisp 개발자가 아니더라도 다양한 용도로 사용할 수 있을 것 같은 유용한 모드이다. 실제로 스크립트 언어들은 거의 대부분 정규표현식을 지원하고, 정규표현식 문법은 대체로 비슷하기에 이런 모드로 정규표현식을 만들면서 테스트 할 수 있다는 것은 매우 유용하다.

re-builder는 GNU Emacs에는 기본적으로 포함되어 있으므로 설치에 관해서는 생략한다.

앞서 "" 만 적혀있다고 했는데, 프로그래머라면 이것이 무엇을 의미하는지 상식적으로 생각해 보자. 바로 문자열이다. "" 내부에 정규표현식을 적어야 될 것 같다고 느낌이 바로 올 것이다.

실제로 무언가를 적어보면 그 변화를 확인할 수 있다. .*를 적는 순간 모든 텍스트가 선택되는 것을 실시간을 확인 할 수 있다.

위 스크린샷은 Scratch 버퍼에 샘플 코드를 적어놓고 M-x re-builder를 실행해서 "\\w+:./\\([a-zA-z_@./]+\\)" 를 시험삼아 적어 본 것이다. url 형식의 문자열에서 프로토콜 부분을 제외한 것을 그룹으로 잡도록 했다. 실제로 Scratch 버퍼의 내용에서 http://email:// 부분이 청록색으로 칠해져 있지만 그 이후 호스트 이름이나 email 주소의 경우 짙은 파란색으로 다르게 칠해져서 그룹이라는 것을 알려주고 있다.

Emacs 정규표현은 python이나 perl 과는 약간 다른 것 같다. 이 정규표현식에 대한 내용은 따로 설명하기 보다는 잘 설명한 사이트를 링크하는 것이 좋을 것 같다.

댓글 없음 :