JAVA

자바 정규식

생활개발 2025. 2. 6. 13:32
728x90

자바, PHP, Javascript 등등 무슨 언어를 사용하던지 정규식을 사용하게 되있다.

정규식을 사용하는 이유는 특정 패턴을 찾아내기 위해서!

예를들면 전화번호나 이메일 형식의 형식을 체크해서 유효성 검사를 한다던지

특정 패턴을 찾아서 true/false를 찾거나 replace한다던지

사용하는 이유는 많이 있다.

 

자주 사용하는 표현식은

자주 사용되는 정규식 샘플

정규 표현식 설명
^[0-9]*$ 숫자
^[a-zA-Z]*$ 영문자
^[가-힣]*$ 한글
\w+@\w+\.\w+(\.\w+)? E-mail
^\d{2,3}-\d{3,4}-\d{4}$ 전화번호
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ 휴대전화번호
\d{6} - [1-4]\d{6} 주민등록번호
^\d{3}-\d{2}$ 우편번호

이런게 있는데 왜 이렇게 사용하는지 문법을 알아보자

 

정규식 문법 기호 모음

기호 설명 예시
. 임의의 문자 1개를 의미  
^ 시작을 의미한다.
[]괄호 안에 있다면 일치하지 않는 부정의 의미로 쓰인다.
^a : a로 시작하는 단어 ex) apple append
[^a] : a가 아닌 철자인 문자 1개 ex) b c d
$ $앞의 문자열로 문자가 끝나는지를 의미한다. a$ : a로 끝나는 단어 ex) area idea 
[] [] 괄호 안의 문자가 있는지를 확인한다. [ab][cd] : a,b중 한 문자와 c,d중 한 문자
ex) ac ad bc bd
[^] [] 대괄호 안에 ^ 문자가 있으면, 제외를 뜻함.
대괄호 안에 ^ 가 쓰이면 제외의 뜻
대괄호 밖에 ^ 가 쓰이면 시작점의 뜻
[^a-z] : 알파벳 소문자 a부터 z까지를 제외한 모든 문자 ex) A B C 1 2 3
- 사이의 문자 혹은 숫자를 의미한다. [a-z] : 알파벳 소문자 a부터 z까지 하나,
[a-z0-9] : 알파벳 소문자 전체,0~9 중 한 문자
[가*힇] : 한글 중 한 문자
| 또는 [a|b] : a 혹은 b
() 그룹 01(0|1) : 01뒤에 0 또는 1이 들어간다
ㄴ010(o), 011(o), 012(x)
{} 개수 a{3}b : a가 3번 온 후 b가 온다
ㄴaab(x), aaab(o), aaaab(o) abaab(x) baaab(o)
\\b 공백, 탭, ",", "/" 등을 의미한다 apple\b : apple뒤에 공백 탭등이 있다
ㄴapple juice(o), apple.com(x)
\\B \\b의 부정(공백, 탭 등이 아닌 문자) apple\B
apple juice(x) , apple.com(o)
\\d 0~9 사이의 숫자, [0-9]와 동일  
\\D \\d의 부정(숫자가 아닌 문자), [^0-9]와 동일  
\\s 공백, 탭  
\\S 공백, 탭이 아닌 문자  
\\w 알파벳 대소문자+숫자+"_", [a-zA-Z_0-9]와 동일  
\\W \\w의 부정(알파벳 대소문자+숫자+"_" 제외한 문자), [^a-zA-Z_0-9]  



728x90