자주 쓰이는 패턴
\\d{3} 연속된 숫자 3개를 찾음
\\w 문자를 찾음
\\w+ 문자 여러개
[0-9] 0-9 사이 문자를 찾음
[a-z] a-z 사이 문자를 찾음
\\. \\[ \\? . [ ? 등 특정 문자를 찾음
예제)
문자열 "123123-4564564 GS25(치킨도시락) 4,400원"
1)
정규식 : \\d{6}-\\d{7}
=>123123-4564564
2)
정규식 : (?<=\\s)(.*?)(?=\\()
=> GS25
3)
정규식 : \\((.*?)\\)
=> (치킨도시락)
4)
정규식 : \\d+,*[0-9]+원 <<< 확인필요
=>4,400원
소스파일 :
package regex.pattern;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexQuiz02 {
public static void main(String[] args) {
/*
* 상품번호, 업소명(도시락명), 가격으로 분리해 출력
* 정규표현에서 () : 괄호 안에 들어있는 문자를 하나의 문자열로 인식
* \\(,\\) -> 특수 문자(,)가 존재하는지를 확인
*
*/
String str1 = "123123-4564564 GS25(치킨도시락) 4,400원";
String str2 = "111111-2222222 CU(마늘햄도시락) 5,500원";
String str3 = "333333-4444444 MINISTOP(제육도시락) 5,000원";
// 패턴 체인링
Matcher m1 = Pattern.compile("\\d{6}-\\d{7}").matcher(str1); //제품번호 : 123123-4564564
Matcher m2 = Pattern.compile("(?<=\\s)(.*?)(?=\\()").matcher(str1); // GS25(
Matcher m3 = Pattern.compile("\\((.*?)\\)").matcher(str1); //(치킨도시락)
Matcher m4 = Pattern.compile("\\d+,*[0-9]+원").matcher(str1); //4,400원
m1.find();
m2.find();
m3.find();
m4.find();
System.out.println("-------------------------------");
System.out.println("제품번호 : "+m1.group());
System.out.println(m2.group());
System.out.println(m3.group());
System.out.println(m4.group());
System.out.println("-------------------------------");
System.out.println("-------------------------------");
// 이메일 형식
// \\w : 영문자와 숫자를 찾음
// \\w+ : 영문자와 숫자 여러 개
//30/서울시 서대문구/02-1234-5678/010-2222-4555/kkk@naver.com
//String pattern2 = "\\w+@\\w+.\\w+";
//String str1 = "123123-4564564 GS25(치킨도시락) 4,400원";
//String pattern2 = "\\((.*?)\\)";
}
}