문자열을 검색하다 보면 정확히 몇 글자만 찾아야 할 것인지를 지정해야 할 경우가 있습니다. 숫자를 대상으로 검색할 때 이런 일이 자주 있습니다. 가령 2011-01-10 같은 숫자들이 있다고 할 때 이중 연도를 추출하려면 연이어 나오는 4자리 숫자를 찾아야 합니다. 이를 정규식으로 만들어 보면,


[0-9]{4}


위와 같이 됩니다. [0-9]가 숫자 한 자리를 의미한다는 정도는 이제 다들 아시겠지요? 그 뒤에 바로 붙여 쓴 중괄호 안의 숫자가 바로 ‘문자의 개수’입니다. 그런데 연도만이 아니라 월과 일을 포함한 각 자리의 숫자들을 모두 찾고 싶다면? 연도는 4자리이고 나머지는 2자리이니 특정 숫자를 지정해서는 안 되고 이때는 범위를 지정해야 합니다. 다음과 같이요.


[0-9]{2,4}


위와 같이 쓰면 2자리, 3자리, 4자리 모두 찾습니다. 즉 2 이상 4까지라는 의미가 됩니다. 두 개의 숫자 가운데 뒤의 것, 즉 쉼표 다음의 숫자는 생략 가능합니다. 이때는 최대치가 무한대로 바뀝니다. 가령 {3,}이라고 쓰면 3번 이상 무한대까지입니다. 그렇다면 {,3} 같은 표기도 가능하지 않을까요? 최소치는 아무래도 상관 없고 3자까지라는 뜻으로요. 에구, 실제로 이렇게 해보니 에러가 나네요. 상상력만 갖고는 안 되는 모양입니다. 그럼 이때는 어떻게 해야 하느냐? {0,3}처럼 앞의 숫자를 0으로 지정하면 됩니다. 즉 문자가 없어도 상관 없고 최대치는 3개까지라는 뜻입니다.


문자 개수를 지정하는 부분은 별게 없습니다. 그러다 보니 오늘 글은 너무 짧게 끝나버렸네요. 시간이 좀 남는 김에 어제 말씀드렸던 mod_rewrite에 대해 좀더 부연설명해 볼까 합니다. 사실 이 옵션은 아파치 웹서버에만 있는 게 아니라 윈도우즈의 IIS 서버에도 있습니다. 다만 그 이름이 mod_rewrite 대신 URL Rewrite로 다릅니다. 또한 아파치 웹서버의 경우 설정 파일만 고치면 되는데 비해 IIS의 경우는 마이크로소프트 사이트에 가서 해당 프로그램을 다운받아 설치해야 한다는 점도 다릅니다.


아무튼 해당 프로그램을 설치하면 IIS 매니저에 URL Rewrite라고 하는 항목이 새로 생깁니다. 아파치에서는 텍스트 파일을 수정해야 했지만 IIS 매니저에서는 비주얼하게 항목을 추가/수정/삭제할 수 있습니다. 또한 .htaccess 파일을 import하는 기능도 있습니다.


어쨌거나 정규식을 적용하는 방법은 두 가지 웹서버에서 모두 같습니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
29 정규표현식 029. 자바스크립트의 정규식 5 마라톤맨 2012-03-28 8786
28 정규표현식 028. 자바스크립트의 정규식 4 마라톤맨 2012-03-09 4601
27 정규표현식 027. 자바스크립트의 정규식 3 마라톤맨 2012-03-02 4767
26 정규표현식 026. 자바스크립트의 정규식 2 마라톤맨 2012-02-27 5427
25 정규표현식 025. 자바스크립트의 정규식 1 마라톤맨 2012-02-22 6842
24 정규표현식 024. 숙제와 답 마라톤맨 2012-02-17 4915
23 정규표현식 023. 정규식의 옵션과 여러 정규식 엔진들 마라톤맨 2012-02-15 17564
22 정규표현식 022. 드라이브명과 디렉토리, 파일명 분리 2 마라톤맨 2012-02-13 10064
21 정규표현식 021. 드라이브명과 디렉토리, 파일명 분리 1 마라톤맨 2012-02-08 7680
20 정규표현식 020. IP 주소 유효성 검사 2 마라톤맨 2012-02-06 6442
19 정규표현식 019. IP 주소 유효성 검사 1 마라톤맨 2012-02-02 55106
18 정규표현식 018. 하위 표현식 3 마라톤맨 2012-01-30 4943
17 정규표현식 017. 하위 표현식 2 마라톤맨 2012-01-27 4074
16 정규표현식 016. 하위 표현식 1 마라톤맨 2012-01-25 5861
15 정규표현식 015. 최대 매치와 최소 매치 2 마라톤맨 2012-01-20 4480
14 정규표현식 014. 최대 매치와 최소 매치 1 마라톤맨 2012-01-18 7813
13 정규표현식 013. 검색할 위치 2 마라톤맨 2012-01-16 4608
12 정규표현식 012. 검색할 위치 1 마라톤맨 2012-01-13 5218
» 정규표현식 011. 검색 문자 개수 지정하기 머니북 2012-01-12 9251
10 정규표현식 010. 웹 서버 설정에도 필요 머니북 2012-01-11 7707