정규 표현식을 사용하면 코드 양을 획기적으로 줄일 수 있다. 이번 기회에 Java에서 지원하는 정규표현식을 정리해 본다.


일단 Java 정규표현식 문서는 아래 링크를 참조. (JAVA SE7기준)

http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html


문서에 사용예제가 있다.

Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); boolean b = m.matches();


정규표현식의 기본 형식에 대해 테스트 코드를 만들어 보았으니, 첨부소스를 참고하자.


regularExpression.zip


(첨부 소스에 빠진 예제가 많은데, 혹시 예제로 표현해 주실 분은 댓글로 남겨주시면 감사하겠습니다.)


정규표현식 검사기도 있다고 하니 JAVA가 아닌 다른 언어로 정규식을 검사할 때 유용하겠다.


아래는 개발하면서 유용하게 쓰일 정규 표현식들. (유첨 소스의 UsefulExpressionsTest.java에 포함)


IP주소

((([0-9])|([1-9]\d{1})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}(([0-9])|([1-9]\d{1})|(1\d{2})|(2[0-4]\d)|(25[0-5]))


URL

^(https?):\/\/([^:\/\s]+)(:([^\/]*))?((\/[^\s/\/]+)*)?\/?([^#\s\?]*)(\?([^#\s]*))?(#(\w*))?$


Email주소

(\w+\.)*\w+@(\w+\.)+[A-Za-z]+


HTML 주석

<!-{2}(.|\n)*?-{2}>


HTML 태그

^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$


주민등록번호

- 주민번호 체계 공식에 대입하기 전에 간단히 자리수 체크만 할 때 쓴다.

// \d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])-[1-4]\d{6}


한글

[가-힣]+


3자~16자의 사용자 id (영문/숫자/_/- 만 가능)

^[a-z0-9_-]{3,16}$


16진수값

^#?([a-f0-9]{6}|[a-f0-9]{3})$



참고 사이트

1.http://blog.naver.com/PostView.nhn?blogId=fightingdk&logNo=60124162230&redirect=Dlog&widgetTypeCall=true

2. http://goodidea.tistory.com/86

3. http://blog.outsider.ne.kr/360


저작자 표시 비영리 동일 조건 변경 허락
신고