정규식은 참 좋은 것 같다. 그러나 그떄 그때 정규식 짜는 것도 참 일이다.
그래서 주로 쓰는 정규식 예제를 모아보았다.
// IPv4
^([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}$"
// IPv6
^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d| 1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$
// 한글 완성형
[\uAC00-\uD7A3]
// 영문자
^[a-zA-Z]*$
// 정수
^[0-9]*$
// 실수
^[+-]?\d*(\.?\d*)$
// 이메일
^[_a-z0-9-]+(.[_a-z0-9-]+)*@(?:\w+\.)+\w+$
// 폰
^01(?:0|1|[6-9]) - (?:\d{3}|\d{4}) - \d{4}$
// 전화
^\d{2,3} - \d{3,4} - \d{4}$
// 주민등록번호
\d{6} \- [1-4]\d{6}
Java에서는 다음과 같이 쓴다.
마지막에 find메소드 호출시 boolean값이 리턴되어서 정규식에 맞는 값인지 확인할 수 있다.
Pattern pattern = Pattern.compile("정규식 표현");
Matcher matcher = pattern.matcher("정규식 검사할 문자열");
matcher.find();
Reference
[1] http://ishyeok.tistory.com/tag/%EC%A0%95%EA%B7%9C%EC%8B%9D
[2] http://easymicro.egloos.com/5461610
[3] http://cafe.naver.com/hermeneus.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=140&
'Devlopment > 정리 글' 카테고리의 다른 글
Java9 특징 (0) | 2016.12.12 |
---|---|
DDD와 JPA에 대해서 알아야 하는 이유 (0) | 2016.06.24 |
함수형 프로그래밍이 주목받는 이유 (0) | 2016.04.27 |
적정 스레드 수 (0) | 2013.05.20 |
Qt(Qt Development Frameworks)란 무엇인가? (0) | 2012.04.16 |
Java에서 JNI를 써서 핑 프로그램을 구현하는 이유 (0) | 2012.01.30 |
버전 관리 & 이슈 관리 시스템 (0) | 2011.06.07 |
C와 Java의 컴파일 과정 (1) | 2011.05.27 |
난수 발생기 (2) | 2010.06.23 |
SnmpWalk (0) | 2010.04.27 |