정규식은 참 좋은 것 같다. 그러나 그떄 그때 정규식 짜는 것도 참 일이다.

그래서 주로 쓰는 정규식 예제를 모아보았다.



// 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
정규식 예제  (0) 2012.03.29
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

Leave a Comment


to Top