본문 바로가기
Languages/Java

[Java] 정규 표현식 (Regular Expression)

by 이래지 2021. 12. 22.
728x90

정규 표현식과 Pattern 클래스


문자열이 정해져 있는 형식으로 구성되어 있는지 검증해야하는 경우에 사용

정규 표현식 작성 방법

정규표현식 작성 방법은 API 도큐먼트에서 java.util.regex.Pattern 클래스에서 볼 수 있다.
기호 설명
[] 한개의 문자  [abc] a, b, c중 하나의 문자 
[^abc] a, b, c 이외의 하나의 문자
[a-zA-Z] a~z, A~Z 중 하나의 문자
\d 한 개의 숫자, [0-9]와 동일
\s 공백
\w 한 개의 알파벳 또는 한 개의 숫자, [a-zA-Z_0-9]와 동일
? 없음 또는 한 개
* 없음 또는 한 개 이상
+ 한 개 이상
{n} 정확히 n개 
{n,} 최소한 n개
{n, m} n개에서부터 m개까지
() 그룹핑

 

(ex) 전화번호 정규 표현식 ( 02-123-4567, 010-1234-5678)

(02|010)-\d{3,4}-\d{4}
기호  설명
(02|010) 02 또는 010
- -포함
\d{3,4} 3자리 또는 4자리 숫자
- -포함
\d{4} 4자리 숫자

 

 

(ex) 이메일 정규 표현식 ( java@naver.com) 

\w+@\w+\.\w+(\.\w+)?

 

기호 설명
\w+ 한 개 이상의 알파벳 또는 숫자
@ @
\w+ 한 개 이상의 알파벳 또는 숫자
\. .
\w+ 한개 이상의 알파벳 또는 숫자
(\.\w+)? \.\w+ 이 없거나 한번 더 올 수 있음

주의할 점은 \. 과 .은 다른데, \.은 문자로서의 점을 말하지만,  .은 모든 문자중에서 한 개의 문자를 뜻한다.

 


Pattern 클래스

정규 표현식으로 문자열을 검증하는 방법을 알아보자. 

문자열을 정규 표현식으로 검증하는 기능은 java.util.regex.Pattern 클래스의 정적 메소드인 matches() 메소드가 제공된다.

 

boolean result = Pattern.matches("정규식", "검증할 문자열");

첫 번째 매개값은 정규 표현식이고, 두 번째 매개값은 검증할 문자열이다. 검증 후 결과가 boolean 타입으로 리턴된다.

댓글