순간을 기록으로

[Java] 정규표현식 정리 본문

Development/JAVA

[Java] 정규표현식 정리

luminous13 2022. 10. 28. 12:22

정규표현식(Regular Expression, RegEx)

  • 특정 문자열 패턴을 찾기 위해 사용되는 식
  • 텍스트로부터 원하는 정보를 찾는데 매우 유용함
표현식 기능 예시 주의
. 모든 문자(anything)와 매칭 A.B.C.D. --> A+B-C=DE 개행문자 제외
\d 숫자문자(any digit)와 매칭 \d\d\d--> 무야호101 [0-9]와 같음
\D \d의 반대. 즉 숫자문자를 제외(non-digit)한 문자와 매칭 \D\D\D -->무야호101   
\w 단어문자(= alphanemric(a-z,A-Z,0-9) + underscore('_')와 매칭 \w\w\w\w--> $0aB_ [0-9a-zA-Z_]와 같음
\W 단어 문자를 제외한 문자(non-word)와 매칭 \w --> $0aB_  
^ 문자열 시작 위치와 매칭 ^123 -> 1235123 대괄호 안 [^]는 다른 의미
$ 문자열 끝 위치와 매칭 123$ -> 1235123  
[] 대괄호 안 여러 문자들 중 한 문자와 매칭 [1ax]c -> 1c,ac,xc []안 문자 순서 중요 X
[^] 대괄호 안에 없는 문자와 매칭 [^ab2]c --> dc,1c  
{x} 문자,문자열이 정확히 x번 할 때 매칭 \w{4} -> H_ck quantifier
{x,} 문자,문자열이 x번 이상 반복될 때 매칭 \w{3,} -> ABCDE quantifier
{x,y} 문자,문자열이 x~y번 반복 될 때 매칭 \w{1,2}\d{2,}-> ab1234 quantifier
* 문자, 문자열이 0 또는 그 이상 반복될 때 매칭 Ab*s -> As, Abbbbs {0,}과 같음,quantifier
+ 문자, 문자열이 1 또는 그 이상 반복될 때 매칭 Ab+s -> As, Abbbbs {1,}과 같음,quantifier
? 문자,문자열이 0 또는 1번 반복될 때 매칭 Ab?s -> As, Abs, Abbs {0,1}과 같음, quantifier
( ) () 안을 하나의 그룹으로 만들어 quantifier을 적용할 수 있도록 매칭 (ok){2,}->okoks  capturing group
| |으로 분리된 여러 item 중 하나와 매칭 (and|And)-> And test, Alternation
\num 순서에 맞게 capturing group ( )과 매칭 (\w)(\d)\2\1->a12b   
\s 화이트 스페이스(whitespace) 문자(\r, \n,\t,\f)와 매칭 \s -> A_B(_는 공백)  
\S \s를 제외한 문자와 매칭 \S -> A_B  
\b 단어 문자(\w)와 비단어문자의 경계와 매칭 \bcat\b -> Acat, A cat  
(b?) Capturing group that match nothing (b?)o\1->o  
(b)? Capturing group that didn't participate in the match at all (b)?o\1->o  

 

Comments