top bar

글 목록

2014년 7월 5일 토요일

정규식 - 무선/유선 전화번호 찾기

정규식을 처음 접할때는 항상 전화번호 찾기로 시작을 하나보다.

일단 나도 그렇게 시작한다

보통 우리나라 유선 전화번호는 

(지역번호)xxx-xxxx 
지역번호-xxx-xxxx 

이다.

중간 번호가 4자리가 있는 유선번호도있나?; 잘모르겠다 일단은 중간번호는 3자리만 있다고 가정.

그리고 모바일 번호는 당연

xxx-3자리또는4자리-xxxx

이다. 이러한 패턴을 찾아주는 정규식 표현을 작성/분석해 본다.

여기서 잠깐 - 정규식 공부하기 좋은 사이트 http://www.regexr.com/



바로 위와같은 표현이 국내 무선/유선 번호를 모두 걸러준다. 하나하나 분석해보자

1. ^ 은 처음의 시작을 나타낸다.
2. 초록색 괄호 () 는 참조그룹이다. 한번 그룹으로 묶으면 \1로 참조하여 재사용할수 있다.
3. 역슬러시(\)바로 다음에 오는 문자는 상수문자를 나타낸다. \( 은 여는괄호 ( 자체를 나타낸다
4. \d 은 digit 로서 숫자를 나타내고 중괄호는 수량자인데, \d{2,3} 이라는것은 숫자가 2개 또는 3개 나열 이라는 뜻이다
5. 초록색 괄호 안에있는 세로줄 | 은 세로줄로부터 양옆의 패턴중 하나라는 뜻으로서 or 의 개념이라고 생각하면된다.

따라서 초록색괄호는 '괄호안에 있는 2개또는3개숫자로 시작하거나, 괄호없이2개또는3개숫자다음에 .이나 -으로 시작하는' 이라는 것으로 이해하면 된다

6. 그 다음으로 숫자3개또는4개나열후에 .이나 - 이 나타나는 패턴이고,
7. 그뒤에 숫자 네개가 오는 것으로 끝나는 ($) 것을 의미한다.

이로써 (02)2234-2233 이나, 010-7777-7777 과 같은 국내 유선/무선 번호를 모두 걸러내는 정규식이 완성되었다.

하지만 이것은 정규식의 빙산의 일각일뿐.. 앞으로 갈길이 멀다.

댓글 없음:

댓글 쓰기