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 |