본문 바로가기

자바

자바 패턴매칭

예제)


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