리자

[문제] 우리나라 주민등록번호를 모두 만족하는 정규표현식을 가장 짧게 작성해 주세요.

· 2011-09-19 (월) 17:15:06 · 5876 · 19
 
1800년대
남자 : 981231-9123456
여자 : 950101-0123456
 
1900년대
남자 : 580728-1012345
여자 : 791209-2982827
 
2000년대
남자 : 091208-3291828
여자 : 111111-4292383
 
13번째의 숫자 check digit 는 따지지 않습니다.
 
위의 주민등록번호를 예로 들어 가장 짧게 검사하는 정규표현식을 작성해 주세요.
 
년도는 숫자 두자리면 모두 통과됩니다.
 
월과 일은 정확하게 따지지만 윤년은 따지지 않습니다.
 
7번째 자리는 정확하게 따집니다.
|

댓글 19개

2011-09-20 (화) 21:16:30
ㅎㄷㄷㄷㄷ
<?php

$str = '091220-3291828';

preg_match("`^\d{2}((0[1,3,5,7,8]((0[1-9])|([1,2][0-9])|30|31))|(0[4,6,9]((0[1-9])|([1,2][0-9])|30))|((10|12)((0[1-9])|([1,2][0-9])|30|31))|(11((0[1-9])|([1,2][0-9])|30))|(02((0[1-9])|([1,2][0-9]))))-[9,0,1,2,3,4]\d{6}$`", $str, $m);

print_r($m);

?>

이게 의미가 있는지 모르겟지만 ......
아무튼 이렇게 되지 않을까 싶습니다.

2월달은 29일까지 체크되게 햇습니다.
preg_match("`^\d{2}(((0[1,3,5,7,8]|10|12)((0[1-9])|([1,2][0-9])|30|31))|((0[4,6,9]|11)((0[1-9])|([1,2][0-9])|30))|(02((0[1-9])|([1,2][0-9]))))-[9,0,1,2,3,4]\d{6}$`", $str, $m);
preg_match("`^\d{2}(((0[13578]|10|12)((0[1-9])|([12][0-9])|30|31))|((0[469]|11)((0[1-9])|([12][0-9])|30))|(02((0[1-9])|([12][0-9]))))-[901234]\d{6}$`", $str, $m);
오늘 자정까지 아무도 안계시면 유창화님 Win 으로 하겠습니다.
\d{2}
(
(
(0[13578]|1[02])(0[1-9]|[12][0-9]|3[01])
)
|
(
(02)(0[1-9]|1[0-9]|2[0-9])
)
)
\-
[901234]\d{6}

저도 2월은 29일 까지로 했습니다.
돌려보질 않아 맞는지는 모르겠습니다.
제가, 넣는것으로 착각했네요
그런데 관리자님꺼 30일짜리가 안보이는것 같습니다
가만
(0[1-9]|[12][0-9]|3[01])
이거 30 이 안나오는 건가요?
아뇨 4 6 9 11 월 체크하는 부분이 없다는 뜻입니다
헉!!!
문제에서 월과 일은 정확하게 따진다고 했으므로 틀린답이네요.
문제가 좀 그렇네요. ㅠㅠ
제가 WIN?
YOU WIN!!! ★★★★★
상금은 없/습/니/다 (개콘 버전)
움... 외계어인가요? ㅡㅡ;
ㅎㅎㅎ 네
;;
-_-
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
12-08-29 조회 5,462
12-08-21 조회 3,450
12-08-21 조회 3,535
12-08-05 조회 3,352
12-08-04 조회 4,328
12-07-31 조회 9,207
12-07-26 조회 3,861
12-07-24 조회 3,492
12-07-20 조회 3,433
12-07-15 조회 3,302
12-07-09 조회 4,663
12-07-09 조회 3,375
12-07-09 조회 3,288
12-07-06 조회 4,105
12-07-05 조회 3,206
12-07-05 조회 3,279
12-06-30 조회 3,408
12-06-29 조회 3,205
12-06-26 조회 3,408
12-06-18 조회 3,286
12-06-18 조회 3,384
12-05-31 조회 3,596
12-05-29 조회 4,351
12-05-23 조회 3,395
12-05-22 조회 3,651
12-05-17 조회 4,447
12-05-10 조회 3,472
12-05-06 조회 3,343
12-05-04 조회 3,029
12-04-25 조회 3,481
12-04-21 조회 3,000
12-04-21 조회 4,404
12-04-20 조회 3,539
12-04-10 조회 2,955
12-04-06 조회 2,833
12-04-05 조회 3,176
12-04-05 조회 3,846
12-03-31 조회 2,973
12-03-30 조회 3,061
12-03-29 조회 2,978
12-03-28 조회 2,998
12-03-27 조회 3,317
12-03-26 조회 3,707
12-03-23 조회 2,897
12-03-20 조회 2,957
12-03-12 조회 2,885
12-03-12 조회 3,229
12-03-12 조회 3,143
12-03-12 조회 4,095
12-03-12 조회 5,612
12-03-12 조회 3,687
12-03-12 조회 5,494
12-03-12 조회 3,701
12-03-12 조회 6,058
12-03-06 조회 3,014
12-03-04 조회 4,146
12-03-02 조회 4,020
12-02-16 조회 5,130
12-02-15 조회 4,482
12-02-11 조회 2,974
12-02-08 조회 2,827
12-02-08 조회 3,844
12-02-07 조회 3,244
12-01-30 조회 2,937
12-01-29 조회 3,361
12-01-25 조회 3,355
12-01-19 조회 2,894
12-01-12 조회 3,035
11-12-30 조회 3,665
11-12-29 조회 3,031
11-12-26 조회 3,051
11-12-26 조회 2,942
11-12-17 조회 4,077
11-12-17 조회 3,268
11-12-01 조회 3,045
11-11-19 조회 4,224
11-11-14 조회 4,104
11-11-14 조회 2,726
11-11-10 조회 2,962
11-11-10 조회 3,628
11-10-27 조회 2,475
11-10-26 조회 2,583
11-10-25 조회 2,466
11-10-17 조회 3,623
11-10-10 조회 2,537
11-10-03 조회 2,591
11-09-28 조회 2,472
11-09-28 조회 3,970
11-09-26 조회 2,451
11-09-26 조회 2,569
11-09-25 조회 2,866
11-09-19 조회 6,016
11-09-09 조회 2,939
11-09-08 조회 3,301
11-08-31 조회 3,102
11-08-29 조회 5,089
11-08-25 조회 2,768
11-08-23 조회 2,450
11-08-21 조회 2,460
11-08-19 조회 2,382