JAVA를 이용한 정규식 간단 사용법
ㅁ Pattern 클래스 : 정규식 패턴을 지정 정의
ㅁ Matcher 클래스 : 정규식 패턴을 데이터와 비교
1단계 : 정규식에 해당하는 Pattern 인스턴스를 얻는다.
Pattern p = Pattern.compile("c[a-z]*");
2단계 : 정규식을 적용하여 비교할 Matcher 인스턴스를 얻는다.
Matcher m = p.matcher(data[i]);
3단계 : 정규식 여부를 확인한다.
if문 사용시 : if(m.matches()) {}
ㅁ 정규식 Rule
- 리터럴([]) 범위 지정 : [0-9] - 숫자, [a-z] - 소문자, [a-zA-Z]알파벳
- 리터럴(.) 모든범위문자
- 리터럴* : 해당 리터럴이 0번 이상 반복
- 리터럴+ : 해당 리터럴이 1번 이상 반복(반드시 1번은 나옴)
- ^리터럴 : 리터럴 조건을 만족하지 않는~
- 리터릴|리터럴 : 택1
- 리터럴{숫자} : 숫자만큼 반복
- (리터럴) : 리터럴 그룹화, 그룹화된 리터럴은 Matcher클래스의 인스턴스 메소드 group(int i) 호출을 통해 그룹단위로 얻을 수 있다.
ex1) [b|c].*{7} : b 또는 c로 시작하는 8자리 문자열
ex2) c.*d : c로 시작하고 d로 끝나는 문자열
ex3) 전화번호 정규식 : (0\d{1,2})-(\d{3,4})-(\d{4})
>>
String ptn = "(0\\d{1,2})-(\\d{3,4})-(\\d{4});
Pattern p = Pattern.compile(ptn);
Matcher m = p.matcher("012-1234-4567");
>>
String regex = ".*he5|.*h5";
String str = "he5chhh.h5hh.he85";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str.toLowerCase());
System.out.println(m.matches());
if(m.find())
System.out.println( m.group() + " has " + m.group(1) + ", " + m.group(2) + ", " + m.group(3) );
[출처] http://blog.naver.com/junz0279?Redirect=Log&logNo=70046805130
'개발 > Java' 카테고리의 다른 글
javaBean 코드를 좀더 사용하기 편하게 하는 Lombok (0) | 2011.01.04 |
---|---|
java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter (0) | 2010.11.21 |
Weblogic에러 - Didn't meet stated Content-Length (0) | 2010.05.28 |
annotation for acegi (0) | 2010.05.27 |
Spirng MVC 와 Tiles 2 연동하기(응용) (0) | 2010.05.26 |