정규식모음

정규식 정리 (1)

웹꽃기사 2022. 9. 21. 00:58

 

자주 쓰이는 패턴
\\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 = "\\((.*?)\\)";  


}

}