1. \\p{Digit} : 숫자 제거
2. \\p{Space} : 공백 제거
3. \\p{Punct} : 특수기호 제거
4. . : 하나의 문자를 의미합니다. 즉, ab. 은 abc나 abd가 될 수 있습니다.
5. ? : 해당 패턴의 앞에 문자가(1개)없거나 혹은 한개가 존재하는 경우를 의미합니다. 즉, a?c는 abc도 될 수 있고, bc도 될 수 있습니다.
6. * : 위와 거의 동일하나 하나 이상의 문자를 의미하게 됩니다. 즉, ab*는 aaa도 ab도 될 수 있다는 의미입니다.
7. ^ : 문자열의 시작을 의미합니다. 즉, ^a는 a로 시작되는 문자를 검색하게 됩니다.
8. + : 앞의 문자가 하나이상의 반복을 의미합니다. 즉, ab+는 abbbb가 될 수도 있다는 의미입니다.
9. [^] : 괄호안의 형식을 제외한다는 의미입니다. 즉, [^a]bc는 a를 제외한 bc, bcd등을 나타냅니다.
10. $ 문자열의 끝을 의미합니다. 즉, ab$가 되는 경우 반드시 b로 끝나는 문자를 나타냅니다.
11. [ ] : 괄호안의 형식이 일치하는 경우를 나타냅니다. 즉, [ab]는 a,b,ab모두가 일치하게 됩니다.
12. ( ) : ()안의 내용을 하나의 묶음으로 사용합니다. 즉, (ab)+는 위 +에 따라 ababab등을 나타냅니다.
13. { } : 안의 숫자에 따른 반복개수를 의미합니다. 즉, ab{2}는 abab를 나타냅니다.
14. | : or연산자와 동일합니다. 즉, a|b|c 는 a,b,c,abc모두가 될 수 있습니다.
/** * 패턴 정의 * @author lsh * */ public class PatternDefine { /** * 전화번호 검색 패턴 02-472-2012 024722012 */ public static final String PATTERN_PHONE = "(\\(?\\d{2,3}\\)?-?\\d{3,4}-?\\d{4})|(\\d{9,11})"; /** * 읍,면,동 구분 */ public static final String PATTERN_ADDRESS_UM_MYUN_DONG = "(\uC74D)|(\uBA74)|(\uB3D9)"; /** * 시,군,구 구분 */ public static final String PATTERN_ADDRESS_SI_GUN_GU="(\uC2DC)|(\uAD70)|(\uAD6C)"; /** * 통합 주소 검색 읍12,면12,동12,가12 */ public static final String PATTERN_ADDRESS_UM_MYUN_DONG_GA_BUNJI = "(\uC0B0\\d{1,5})|(\uBA74\\d{1,5})|(\uB3D9\\d{1,5})|(\uAC00\\d{1,5})|(\uB9AC\\d{1,5})"; /** * 공백 제거 패턴 */ public static final String PATTERN_BLANK = "\\p{Space}"; /** * 한글 구분 */ public static final String PATTERN_HANGUL = "[\\x{ac00}-\\x{d7af}]"; /** * 기호중에서 - or ~ 둘중에 하나가 있는경우 구분 */ public static final String PATTERN_HYPHEN_OR_SWUNG_DASH ="(~|-)"; /** * 시,도 - 시,군,구 구분 */ public static final String PATTERN_ADDRESS_SI_DO_SI_GUN_GU = "(" + PATTERN_HANGUL + "+(\uC2DC|\uB3C4)+" + PATTERN_HANGUL + "+(\uC2DC|\uAD70|\uAD6C))"; /** * 도로명 주소 뒤에 붙는 글자 * ex * 1. 부산광역시 중구 중구로 지하31 (신창동4가) -> 지하 */ public static final String PATTERN_ROAD_SUFFIX_TEXT = "(\uC9C0\uD558)"; /** * 도로명 주소 뒤에 붙는 패턴 ex) * <br> 앞에 접두사 로|길 * <br> 1.숫자 * <br> 2.숫자+번지 * <br> 3.숫자(~|-)번지 * <br> 4.숫자(~|-)번지 * <br> 한글로 시작하는경우 * <br> 1.한글+숫자 * <br> 2.한글+숫자+번지 * <br> 3.한글+숫자(~|-)번지 * <br> 4.한글+숫자(~|-)번지 */ public static final String PATTERN_ROAD_SUFFIX = "(" + "(" + "(\\d{1,5})"+ "|(\\d{1,5}\uBC88\uC9C0)"+ "|(\\d{1,5}(~|-)\\d{1,5})" + "|(\\d{1,5}(~|-)\\d{1,5}\uBC88\uC9C0)"+ ")"+ "|"+ "("+ "("+PATTERN_ROAD_SUFFIX_TEXT+"\\d{1,5})"+ "|("+PATTERN_ROAD_SUFFIX_TEXT+"\\d{1,5}\uBC88\uC9C0)"+ "|("+PATTERN_ROAD_SUFFIX_TEXT+"\\d{1,5}(~|-)\\d{1,5})" + "|("+PATTERN_ROAD_SUFFIX_TEXT+"\\d{1,5}(~|-)\\d{1,5}\uBC88\uC9C0)"+ ")"+ ")"; /** * 도로명 주소 패턴 ex) (한글|(숫자(~|-)숫자)|숫자)로|길 */ public static final String PATTERN_ROAD = "(([\\x{ac00}-\\x{d7af}]|(\\d{1,5}(~|-)\\d{1,5})|\\d{1,5})+(\uB85C|\uAE38))"; /** * 한글 + 읍,면,동,가,리 */ public static final String PATTERN_ADDRESS_UM_MYUN_DONG_GA_RI = "([\\x{ac00}-\\x{d7af}]+((\uC74D)|(\uBA74)|(\uB3D9)|(\uAC00)|(\uB9AC)))"; /** * 한글 + 읍,면,동,가 */ public static final String PATTERN_ADDRESS_UM_MYUN_DONG_GA = "([\\x{ac00}-\\x{d7af}]+((\uC74D)|(\uBA74)|(\uB3D9)|(\uAC00)))"; /** * 한글 + 리 */ public static final String PATTERN_ADDRESS_RI = "([\\x{ac00}-\\x{d7af}]+(\uB9AC))"; /** * 번지 112-11, 11 */ public static final String PATTERN_ADDRESS_BUNJI ="(\\d{1,5}(~|-)\\d{1,5}|\\d{1,5})"; /** * 산번지 112-112 */ public static final String PATTERN_ADDRESS_SAN_BUNJI ="(\uC0B0(\\d{1,5}(~|-)\\d{1,5}|\\d{1,5}))"; /** * 회사이름 앞,뒤 글자 */ public static final String PATTERN_COMPANY_PREFIX_AND_SUFFIX = "(\\(\uC8FC)\\)|(\\(\uC0AC)\\)|(\\(\uC7AC)\\)"; /** * 특수문자 */ public static final String PATTERN_SPECIAL_LETTERS = "\\p{Punct}"; /** * 시,도 & 시,군,구 & 도로명 주소 분류 패턴 * @return */ public static String toSidoSigunguRoad() { StringBuffer buffer = new StringBuffer(); buffer = new StringBuffer(); buffer.append(PATTERN_ADDRESS_SI_DO_SI_GUN_GU); buffer.append(PATTERN_ROAD); buffer.append(PATTERN_ROAD_SUFFIX); return buffer.toString(); } /** * 시,군,구 & 도로명 주소 분류 패턴 * @return */ public static String toSigunguRoad() { StringBuffer buffer = new StringBuffer(); buffer.append(PATTERN_ADDRESS_SI_GUN_GU); buffer.append(PATTERN_ROAD); buffer.append(PATTERN_ROAD_SUFFIX); return buffer.toString(); } /** * 도로명 주소 분류 패턴 * @return */ public static String toRoad(){ StringBuffer buffer = new StringBuffer(); buffer.append(PATTERN_ROAD); buffer.append(PATTERN_ROAD_SUFFIX); return buffer.toString(); } /** * 통합 주소 검색 패턴 * @return */ public static final String toUnifiedAddress(){ StringBuffer buffer = new StringBuffer(); buffer.append("("); buffer.append(PATTERN_ADDRESS_UM_MYUN_DONG_GA_RI); buffer.append(PATTERN_ADDRESS_BUNJI); buffer.append(")"); buffer.append("|"); buffer.append("("); buffer.append(PATTERN_ADDRESS_UM_MYUN_DONG_GA_RI); buffer.append(PATTERN_ADDRESS_SAN_BUNJI); buffer.append(")"); return buffer.toString(); } }
'Java' 카테고리의 다른 글
Compare 정렬관련 설명 (0) | 2014.03.06 |
---|---|
jar 파일 실행파일로 만들기 (0) | 2014.03.06 |
Java Naming Convention (0) | 2014.03.06 |
날짜관련 포맷 (0) | 2014.03.06 |
시스템마다 달라지는 자바의 줄바꿈(행구분) 처리방법 (0) | 2014.03.06 |