예제)
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test5 {
//패턴 매칭
public static void main(String[] args) {
String[] data={
"bat","baby", "bonus","c","cA",
"ca","co","c.","c0","c#","car",
"combat","count","date","disc"
,"010-111-1111","010-1111-1111",
"010-0000-1111","01-111-1111",
"800101-1000002","54212-55444"
};
String[] p={
".*",".{3}","c[a-zA-Z0-9]","c.*",
"010\\-[0-9]{4}-[0-9]{4}",
"010\\-[0-9]{3,4}-[0-9]{4}",
"[b|c].{2}","c.*t","\\d{6}\\-[1-6]\\d{6}"
};
/*
.* : 모든문자( . : 1문자, * : 0개이상)
.{3} : .이 3개 -> 3문자
c[a-z] : c로 시작하고 두번째문자가 영문자의 소문자인 경우 -> 총2글자
c.* : c로 시작하는 모든문자.
[b|c].{2} : b 또는 c로 시작하고 2글자가 붙은 문자 -> 총3글자
c.*t : c로 시작하고 t로 끝나는 문자
*/
for(int n=0; n<p.length; n++){
//검색할 패턴을 만듬
Pattern pa=Pattern.compile(p[n]);
System.out.println("패턴 :"+p[n]);
for(int x=0; x<data.length; x++){
//매칭되는 문자열을 검색
Matcher m=pa.matcher(data[x]);
if(m.matches())
System.out.println(data[x]+", ");
}
System.out.println("\n\n");
}
}
}
결과)
패턴 :.*
bat,
baby,
bonus,
c,
cA,
ca,
co,
c.,
c0,
c#,
car,
combat,
count,
date,
disc,
010-111-1111,
010-1111-1111,
010-0000-1111,
01-111-1111,
800101-1000002,
54212-55444,
패턴 :.{3}
bat,
car,
패턴 :c[a-zA-Z0-9]
cA,
ca,
co,
c0,
패턴 :c.*
c,
cA,
ca,
co,
c.,
c0,
c#,
car,
combat,
count,
패턴 :010\-[0-9]{4}-[0-9]{4}
010-1111-1111,
010-0000-1111,
패턴 :010\-[0-9]{3,4}-[0-9]{4}
010-111-1111,
010-1111-1111,
010-0000-1111,
패턴 :[b|c].{2}
bat,
car,
패턴 :c.*t
combat,
count,
패턴 :\d{6}\-[1-6]\d{6}
800101-1000002,
'자바' 카테고리의 다른 글
재미있는 예제 (0) | 2013.05.28 |
---|---|
checked Exception (0) | 2013.05.28 |
unchecked exception (0) | 2013.05.28 |
class 클래스 (0) | 2013.05.25 |
replaceAll의 알고리즘 (0) | 2013.05.25 |