본문 바로가기

Programming/Java

[Java] 정규식 문법 정리(Regex)

📝 문법

Character

\\ 백슬래시(\) 문자
\t tab(탭) 문자
\n newline 문자(ex. 엔터)
\r carriage-return 문자
\d 숫자 : [0-9]
\D 숫자를 제외한 모든 문자 : [^0-9]
\s 공백 문자 : [ \t\n\x0B\f\r]
\S 공백이 아닌 문자 : [^\s]
\w 숫자나 영어, _(under-bar) : [a-zA-Z_0-9]
\W 숫자나 영어, _가 아닌 모든 문자 : [^\w]
. 모든 문자

 

💡 정규식에서 특수문자를 사용해 검색하고 싶은 경우?
모든 문자를 검색한다는 의미의 *과 Character '*'을 구분할 수 없기 때문에 \\를 붙여 사용해야 한다. 
* → \\*

 

Character Class

[] 문자를 하나의 집합으로 묶는다
[abc] a, b, c 모두 가능
[^abc] a, b, c 제외
[a-zA-Z] 합집합, a-z거나 A-Z까지 가능
[a-z&&[def]] 교집합, d, e, f 만 가능

 

Boundary & Quantifiers

^ 문자열의 시작
$ 문자열의 종료
X? X가 0 또는 1개 존재
X* X가 0개 이상 존재
X+ X가 1개 이상 존재
X{n} X가 정확히 n개 존재
X{n,} X가 최소 n개 존재
X{n,m} X가 n개 이상 m개 이하 존재

 

Operator

XY X뒤에 Y가 존재
X|Y X나 Y
(X) X를 하나의 그룹으로 묶는다

 

 

 

 


📚 Reference

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html