오늘은 정규식의 여러 메타문자 등에 대해 공부할 수 있는 인터넷 사이트를 하나 알려드립니다.


http://msdn.microsoft.com/ko-kr/library/az24scfc.aspx


위의 사이트입니다. 다만 여기 실린 내용을 갖고 공부하시긴 좀 어려울 것입니다. 그냥 참고용이라고 생각하시면 됩니다. 어쨌든 정리는 깔끔하게 잘 돼 있으니 필요하실 때 참고하는 용도로는 제격입니다.


이 글을 진행함에 있어 일단 자바스크립트의 기본 문법 정도는 아신다고 가정하겠습니다. 여기서 그것까지 설명드릴 수는 없으니까요. 다만 어디까지나 ‘기본’ 문법입니다. 자바스크립트에 통달하실 필요까진 없습니다. 우선 예제입니다. 백문이 불여일견, 백견이 불여일타~~~


<script language="javascript">

s = '123abc4';


if (/\d{3}/.test(s))

document.write('성공<br>');

else

document.write('실패<br>');

</script>


아무 html 파일이나 하나 만들어서 위의 자바스크립트를 복사해 붙여 넣고 실행시키면 결과는 ‘성공’이라고 나옵니다. 자신의 컴퓨터에 아파치 웹서버를 설치해서 테스트해도 되고 아니면 웹브라우저에서 해당 html을 직접 파일 열기해도 됩니다. 물론 후자가 간편합니다. 자바스크립트가 좋은 점도 바로 이것 아니겠습니까. php처럼 굳이 뭔가를 인스톨한다든가 웹서버를 필요로 한다든가 하는 게 없죠. 그저 달랑 웹브라우저 하나만 있으면 만사형통이니까요.


위의 코드에서 if문의 슬래시 사이에 들어 있는 것이 정규식의 패턴입니다. 펄과 루비, PHP 등 펄 계열의 언어에서는 이처럼 정규식 패턴을 슬래시로 둘러쌉니다. 다만 PHP에서는 슬래시를 다시 따옴표로 둘러쌉니다. 아무튼 자바스크립트에서는(펄, 루비도 마찬가지) 문자열처럼 보인다고 해서 슬래시를 다시 따옴표로 둘러싸서는 안 됩니다.


위의 코드는 ‘123abc4’라는 문자열에 3자리의 숫자가 들어 있으면 true를 리턴하고 그렇지 않으면 false를 리턴한다는 의미입니다. 따라서 만약 {3} 부분을 {4}로 고친다면? 그때는 당연히 ‘실패’라고 나오겠지요.


위의 자바스크립트 코드를 PHP로 다시 작성하면 다음과 같습니다. 슬래시 안에 정규식 패턴이 들어가는 것은 같지만 이를 다시 따옴표로 둘러싸는 게 다릅니다. 물론 작은 따옴표를 큰 따옴표로 바꿔도 상관 없습니다. 자바스크립트나 PHP 모두 문자열을 작은 따옴표나 큰 따옴표로 둘러살 수 있으니까요. 다만 짝은 맞춰야 합니다. 즉 $s = 'abc"; 이런 식으로 하면 안 됩니다.


<?php

$s = '123abc4';


if (preg_match('/\d{3}/', $s))

echo ('성공<br>');

else

echo ('실패<br>');

?>


객체 

메써드 

기능 

 RegExp

 exec

 매치되는 부분 검색

 

 test

 일치하는 부분이 있는지 검사

 String

 match

 문자열 검색

 

 search

 일치하는 부분이 있는지 검사

 

 split

 하나의 문자열을 여러개로 분리

 

 replace

 문자열을 치환


위와 같습니다. 자세한 설명은 다음 회부터 이어집니다.



List of Articles
번호 제목 글쓴이 날짜 조회 수
29 정규표현식 029. 자바스크립트의 정규식 5 마라톤맨 2012-03-28 15496
28 정규표현식 028. 자바스크립트의 정규식 4 마라톤맨 2012-03-09 9133
27 정규표현식 027. 자바스크립트의 정규식 3 마라톤맨 2012-03-02 9324
26 정규표현식 026. 자바스크립트의 정규식 2 마라톤맨 2012-02-27 11045
» 정규표현식 025. 자바스크립트의 정규식 1 마라톤맨 2012-02-22 31646
24 정규표현식 024. 숙제와 답 마라톤맨 2012-02-17 10070
23 정규표현식 023. 정규식의 옵션과 여러 정규식 엔진들 마라톤맨 2012-02-15 68195
22 정규표현식 022. 드라이브명과 디렉토리, 파일명 분리 2 마라톤맨 2012-02-13 23619
21 정규표현식 021. 드라이브명과 디렉토리, 파일명 분리 1 마라톤맨 2012-02-08 13537
20 정규표현식 020. IP 주소 유효성 검사 2 마라톤맨 2012-02-06 10755
19 정규표현식 019. IP 주소 유효성 검사 1 마라톤맨 2012-02-02 98031
18 정규표현식 018. 하위 표현식 3 마라톤맨 2012-01-30 10005
17 정규표현식 017. 하위 표현식 2 마라톤맨 2012-01-27 8336
16 정규표현식 016. 하위 표현식 1 마라톤맨 2012-01-25 10210
15 정규표현식 015. 최대 매치와 최소 매치 2 마라톤맨 2012-01-20 9100
14 정규표현식 014. 최대 매치와 최소 매치 1 마라톤맨 2012-01-18 12519
13 정규표현식 013. 검색할 위치 2 마라톤맨 2012-01-16 8975
12 정규표현식 012. 검색할 위치 1 마라톤맨 2012-01-13 9417
11 정규표현식 011. 검색 문자 개수 지정하기 머니북 2012-01-12 21318
10 정규표현식 010. 웹 서버 설정에도 필요 머니북 2012-01-11 13308