Spring
JAVA 정규식 이용하여 문자열 Filtering하기
Hasky96
2022. 4. 12. 22:57
String문자열을 replaceAll을 이용하여 변경하는 방식으로 진행하였습니다.
// filtering 하려고 하는 문자열
Stirng str = "";
// replaceAll을 이용하여 filtering 하기
String result = str.replaceAll(regex, replacement);
regex = filtering 하는 기준(String)
replacement = 바꿀 문자열
regex
대괄호( [ ] ) 안의 해당하는 한개의 문자를 의미합니다.
ex) [abc] => a혹은 b혹은 c인 하나의 문자
ex) [^def] => d와 e와 f를 제외한 하나의 문자 =>[ ] 내부의 ^ 는 제외를 의미한다.
ex) [a-zA-Z0-9] => 0~9, a~z, A~Z 중 하나의 문자
? , *, +, { } 는 문자의 수를 의미합니다.
기호 | 개수 |
? | 없거나 1개 |
* | 없거나 1개 이상 |
+ | 1개 이상 |
{n} | 정확히 n개 |
{n,} | n개 이상 |
{n, m} | n개에서 m개까지 |
ex) [a-z]* => a~z의 문자가 없거나 1개이상
다른 기호들
기호 | 의미 | ex |
^ | 문자열의 시작 | ^[a-z] |
$ | 문자열의 종료 | [a-z]$ |
. | 임의의 한 문자 | |
() | 소괄호 안의 문자를 하나의 문자로 인식 | |
| | or 연산 | ^[a]|[a]$ |
\s | 공백 | |
\S | 공백 아닌 나머지 문자 | |
\w | 알파벳이나 숫자, "_"언더바 | 언더바를 제외하고 싶으면 \w_ |
\W | 알파벳이나 숫자, "_" 언더바 를 제외한 문자 |
|
\d | 숫자 == [0-9] | |
\D | 숫자를 제외한 모든 문자 |
*TIP
1. java 는 \를 인식하지 못합니다. \S 같은 기호를 사용하려면 \\S로 사용해야 합니다.
2. 한글은? => [가-힣] == 모든 한글
3. Email? => "\\w + @\\w+\.\w+(\\.\\w+)?"
ex) asdfasd@test.com => (\\.\\w+)? => ?는 없다를 의미!
ex) asdfqwef@test.co.kr => (\\.\\w+)? => ?는 1개를 의미!