예전에 미니위니에서 한 번 답변해드렸는데, 다른 커뮤니티에도 자주 올라오는 질문이라서 한 번 포스팅을 해두기로 했습니다.
정규식이 굉장히 유용하지만 사용법을 잘 모르면 굉장히 에두른 코딩 방법으로 할 수밖에 없는 상황에 처하죠.
아는 만큼 제작자가 편해진달까, 아는 만큼 프로그램 성능이 좋아진달까…
아. 저도 앞으로 기술들을 체계적으로 다시 공부하려고 합니다. 필요한 것만 그때그때 알아가니까 , 평소에 불편함은 없어도 정말 뭐 하나 만들고 싶을 땐 별 도움이 안 되는군요.
CMS 같은 것도 연습 삼아 하나 만들어야겠네요. 어차피 사용자를 바라고서 만드는 것이 아니고 완전히 그냥 실습용? 어쨌든 삼천포를 접고 다시 본론으로 돌아가서… 많은 분들이 암호 등의 검사에 흔히 필요로 하시는 정규식을 나열합니다.
1. 한 문자열에 알파벳과 숫자가 각각 최소한 1개 이상 들어있어야 일치되는 정규식 (빈칸 불허)
^([a-zA-Z]+[0-9]+[a-zA-Z0-9]*|[0-9]+[a-zA-Z]+[a-zA-Z0-9]*)$
2. 한 문자열에 알파벳과 숫자가 각각 최소한 1개 이상 들어있어야 일치되는 정규식 (중간의 빈칸만 허용, 끝 빈칸은 불허)
^([a-zA-Z]+\s*[0-9]+\s*[a-zA-Z0-9 ]*|[0-9]+\s*[a-zA-Z]+\s*[a-zA-Z0-9 ]*)[^\s]$
(위 정규식에서 문자 클래스 [a-zA-Z0-9 ]의 맨 뒤에 빈칸이 한 개 들어있음에 유의하세요)
3. 영수문자(알파벳과 숫자 각각 최소 1개 이상)로 구성된 6~12자리 문자열에 일치되는 정규식
^(?=([a-zA-Z]+[0-9]+[a-zA-Z0-9]*|[0-9]+[a-zA-Z]+[a-zA-Z0-9]*)$).{6,12}
(자릿수까지 제한할 수 있는 이것이 암호 검사에 주로 사용되죠)
—
언제 나올지 현재 잘 모르는 상황이지만, 언젠가 나올 번역서의 원서 Regular Expressions Cookbook에는 정규식 관한한 모든 내용이 수록돼 있어서 이거 한 권이면 더 이상 인터넷 상에서 정규식 질문하실 필요는 없으실 거라는 확신이 드네요(물론 정규식으로 가능한 범위 내의 질문이라는 전제 하에서죠. 불가능한 것이야 답은 뻔해도 일단 무궁무진하게 질문은 던져볼 수 있으니까요).








[...] This post was mentioned on Twitter by 까막눈, Jinwon.Kim. Jinwon.Kim said: 비밀번호(암호) 검사용 정규표현식 http://bit.ly/c4jV8I [...]