테스트 사이트 - 개발 중인 베타 버전입니다

Regular Expressions 정규표현식 소모임 신청합니다.

· 4년 전 · 1686 · 22

세상은 넓고 고수는 많습니다.

 

인터넷은 항상 열려있고 우리는 모든 문제를 검색을 통하여 해결하고 있습니다.

 

그러나 검색으로 해결할 수 없는 문제들이 있습니다.

 

무슨 얘기냐구요?

 

오류 메세지를 정확하게 뱉어내지 않는 오류에 대해서 우리들은 해결을 하지 못하거나, 해결하는데 많은 시간을 빼앗길 수 있습니다.

 

대비하지 않는다면 속수무책으로 당할 수 밖에 없습니다.

 

정규표현식이 아마 이런 일들에 포함되지 않을까 생각됩니다.

 

자~ 이런 상황이 생겼다고 가정하겠습니다.

 

휴대폰번호를 검증하는 코드를 작성해라.

 

010 으로 시작하고 중간번호는 3자리 또는 4자리가 들어갈 수 있고 끝번호는 4자리이다.

중간에 - 와 같은 특수문자가 들어갈 수도 안들어 갈 수도 있다.

 

그럼 대충 이런 번호가 나올 수 있겠죠.

 

010-123-4567

010-1234-5678

0101234567

01012345678

 

#^010\-?\d{3,4}\-\d{4}$#


그리고 위와 같은 정규표현식으로 대충(?) 검증 할 수 있겠는데요.

 

그럼 이렇게 작성하면 끝이냐? 

 

여기에 요구사항이 더해질 수 있겠죠?

 

국번이 011, 016, 017, 018, 019 가 추가 될 수도 있고,

 

구분자 - 의 옆에 공백이 있을수 있고

 

휴대폰 번호의 앞뒤에 공백 및 다른 특수문자들이 있을 수 있고, 

가령 HTML 사이에 있다면 <p>010-1234-5678</p> 이런 코드가 있을 수 있구요.

 

휴대폰 번호만 들어오면 좋겠지만 지역번호도 검증했으면 한다 그러면~

 

02, 032.... 이런 국번도 들어 올수도 있고...

 

물론 아래와 같은 코드로 결과만 제대로 나온다면 틀린건 아닙니다. ㅎ

 

if ($bun1 == "02") {
  ...
} else $bun2 == "032") {

  ...
} else {

  ...
}

# 이 뒤로도 몇십줄 

...

 

위와 같은 코드와 아래와 같은 코드 중 어떤 코드로 개발하길 원하십니까?

 

#^(02|032|010)\-?\d{3,4}\-\d{4}$#

 

 

정규표현식 같이 배워가시죠?

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 22개

4년 전
결과만 나오면 상관없다 주의를 고쳐보려고 합니다.
@비타주리 잘 생각하셨습니다.
4년 전
어떻게 같이 배우는건가요?
@빅클린코드 문제를 올리고 같이 해결해 나가는 방식으로 운영할까 합니다.
4년 전
@리자 그냥 다른 분들 해결책 감상하는 것만으로도 의미가 있다고 생각합니다.
정규표현식... 부르다가 내가 죽을 이름이여...
@비타주리 부르다 돌아가시면 아니 되옵니다~
4년 전
규식이형을 파볼 시간... 신청합니다. ㅎ
@홈피공장장 추천은 하신~거죠? ㅎ
안그래도 어제 파이썬 코드 수정하다가
정규식에서 막혔는데ㅠㅠ
추천 드리고 갑니다ㅎㅎ
@Joan 정규식은 비슷한데 PHP와 방식이 달라서 어렵더라구요. ㅎ

게시글 목록

번호 제목
2067
2062
2057
2040
2035
2034
2033
2026
2018
2017
2007
2001
1967
1944
1899
1896
1895
1888
1883
1873
1857
1847
1846
1845
1829
1798
1792
1772
1769
1767