Tips/Java

[JAVA] Regular Expression (정규 표현식) 예제

dextto™ 2013. 3. 16. 23:20

정규 표현식을 사용하면 코드 양을 획기적으로 줄일 수 있다. 이번 기회에 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
다운로드

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

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

 

 

 

 

반응형