이메일 주소를 찾아내는 정규식


정규 표현식에서 대쉬는 범위를 나타내는 문자로도 사용되므로, 하이픈 자체를 가리킬 때는 역슬래쉬로 이스케이프한다. 그러나 마침표는 대괄호 안에서 메타 문자의 의미를 잃기 때문에 이스케이프할 필요가 없다.

[a-zA-Z0-9.\-]\+@[a-zA-Z0-9.\-]\+

여기서 +도 이스케이프했다는 사실에 주의해야 한다. 이는 vim에서 + 기호를 특수한 목적으로 사용하기 때문이다.



검색한 메일 주소를 <a href="메일 주소"> 메일주소</a> 형식으로 변경하기


검색된 메일 주소 부분을 재사용하기 위해 정규 표현식의 백레퍼런스 기능인 소괄호를 사용해야 한다.

소괄호를 추가한 ([a-zA-Z0-9.\-]\+@[a-zA-Z0-9.\-]\+) 검색어로 다시 검색해보자.

※ 완벽한 정규 표현식을 만들 때까지는 검색 기능으로 꼭 확인을 해야 한다.


하지만 정규 표현식 패턴을 소괄호로 묶으니 검색이 실패했다. 

실패한 이유는, 패턴 앞뒤에 사용된 괄호 문자를 일반 문자로 인식했기 때문이다. 즉, vim은 '(메일주소)' 형태를 찾으려고 한 것이다.

그러므로 소괄호를 이스케이프하여 \(메일주소\) 형식으로 바꿔줘야 한다.




검색한 이메일 주소 변경하기

\1 은 앞부분에서 찾은 검색 결과를 재사용하는 백레퍼런스이다.


'Programming > RegEx' 카테고리의 다른 글

정규 표현식(Regualr Expression)  (0) 2013.05.05
태그 찾기  (0) 2013.02.12
[Python] Regular Expression  (0) 2013.02.07
URL 교체하기  (0) 2013.02.03
POSIX 정규 표현식  (0) 2013.02.03
Posted by scii
: