리자

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

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

댓글 19개

http://sir.co.kr/bbs/board.php?bo_table=pr_req3
ㅎㅎ
ㅎㄷㄷㄷㄷ
<?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 월 체크하는 부분이 없다는 뜻입니다
문제에서 월과 일은 정확하게 따진다고 했으므로 틀린답이네요.
문제가 좀 그렇네요. ㅠㅠ
YOU WIN!!! ★★★★★
상금은 없/습/니/다 (개콘 버전)
움... 외계어인가요? ㅡㅡ;
댓글을 작성하시려면 로그인이 필요합니다. 로그인

프로그램

+
제목 글쓴이 날짜 조회
14년 전 조회 798
14년 전 조회 913
14년 전 조회 2,029
14년 전 조회 847
14년 전 조회 3,207
14년 전 조회 977
14년 전 조회 503
14년 전 조회 839
14년 전 조회 688
14년 전 조회 1,372
14년 전 조회 540
14년 전 조회 651
14년 전 조회 696
14년 전 조회 726
14년 전 조회 999
14년 전 조회 1,040
14년 전 조회 1,615
14년 전 조회 646
14년 전 조회 1,091
14년 전 조회 2,882
14년 전 조회 806
14년 전 조회 761
14년 전 조회 1,195
14년 전 조회 1,187
14년 전 조회 2,032
14년 전 조회 1,241
14년 전 조회 611
14년 전 조회 564
14년 전 조회 461
14년 전 조회 679
14년 전 조회 2,188
14년 전 조회 626
14년 전 조회 651
14년 전 조회 745
14년 전 조회 948
14년 전 조회 590
14년 전 조회 872
14년 전 조회 1,437
14년 전 조회 673
14년 전 조회 985
14년 전 조회 453
14년 전 조회 517
14년 전 조회 995
14년 전 조회 1,343
14년 전 조회 1,410
14년 전 조회 885
14년 전 조회 811
14년 전 조회 1,340
14년 전 조회 856
14년 전 조회 3,952
14년 전 조회 1,886
14년 전 조회 688
14년 전 조회 613
14년 전 조회 3,556
14년 전 조회 4,238
14년 전 조회 982
14년 전 조회 1,174
14년 전 조회 4,405
14년 전 조회 1,215
14년 전 조회 1,005
14년 전 조회 757
14년 전 조회 769
14년 전 조회 958
14년 전 조회 888
14년 전 조회 1,038
14년 전 조회 915
14년 전 조회 1,339
14년 전 조회 683
14년 전 조회 544
14년 전 조회 574
14년 전 조회 718
14년 전 조회 1,184
14년 전 조회 818
14년 전 조회 1,353
14년 전 조회 1,113
14년 전 조회 1,090
14년 전 조회 1,059
14년 전 조회 1,933
14년 전 조회 3,258
14년 전 조회 1,463
14년 전 조회 2,400
14년 전 조회 1,901
14년 전 조회 1,782
14년 전 조회 961
14년 전 조회 502
14년 전 조회 779
14년 전 조회 944
14년 전 조회 1,661
14년 전 조회 1,713
14년 전 조회 1,148
14년 전 조회 797
14년 전 조회 1,021
14년 전 조회 1,050
14년 전 조회 1,059
14년 전 조회 590
14년 전 조회 665
14년 전 조회 781
14년 전 조회 1,714
14년 전 조회 918
14년 전 조회 865
🐛 버그신고