문자열이 정해져 있는 형식 (정규 표현식 : Regular Expression) 으로 구성되어 있는지 검증해야 하는 경우가 있다.
(이메일, 전화번호 등..)
1. 정규 표현식 작성 방법
java.util.regex.Pattern 클래스를 찾아 Summary of regular-expression constructs 를 참조한다.
정규 표현식은 문자 또는 숫자 기호와 반복 기호가 결합 된 문자열이다.
기호 설명표
기호 |
설명 |
||
[ ] |
한 개의 문자 |
[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개까지 |
||
( ) |
그룹핑 |
예) 전화번호 010-1234-5678 같은 정규 표현식
(02|010)-\d{3,4}-\d{4}
(02|010) : 02 또는 010
- : - 포함
\d{3,4} : 3 자리 또는 4 자리 숫자
- : - 포함
\d{4} : 4 자리 숫자
예) 이메일 정규 표현식
\w+@\w+\.\w+(\.\w+)?
\w+ : 한 개 이상의 알파벳 또는 숫자
@ : @ 기호
\w+ : 한 개 이상의 알파벳 또는 숫자
\. : .
\w+ : 한 개 이상의 알파벳 또는 숫자
(\.\w+)? : \.\w+ 이 없거나, 한 번 더 올 수 있음
주의!
\. : 문자로서의 점 (.)을 말하지만,
. : 모든 문자 중에서 한 개의 문자를 뜻한다.
2. Pattern 클래스
정규 표현식으로 문자열을 검증하는 방법은
java.util.regex.Pattern 클래스의 정적 메소드인 matches() 메소드가 제공한다.
boolean result = Pattern.matches(“정규식”, “검증할 문자열”);
예) PatternExample.java : 문자열 검증하기
public class PatternExample {
public static void main(String[] args) {
String regExp = “(02|010)-\\d{3,4}-\\d{4}”;
String data = “010-123-4567”;
boolean result = Pattern.matches(regExp, data);
if(result) {
System.out.println(“정규식과 일치합니다.”); // 일치 출력
} else {
System.out.println(“정규식과 일치하지 않습니다.”);
}
regExp = “\\w+@\\w+\\.\\w+(\\.\\w+)?”;
data = “angle@navercom”;
result = Pattern.matches(regExp, data);
if(result) {
System.out.println(“정규식과 일치합니다.”);
} else {
System.out.println(“정규식과 일치하지 않습니다.”); // . 이 없어서 불일치 출력
}
}
}
'Java 기본 문법 - 참조 서적 [이것이 자바다 - 한빛미디어] > 9. 기본 API 클래스' 카테고리의 다른 글
12. Java 자바 [API] - Wrapper (포장) 클래스 (0) | 2020.09.29 |
---|---|
11. Java 자바 [API] - Arrays 클래스 (0) | 2020.09.29 |
9. Java 자바 [API] - StringBuffer, StringBuilder 클래스 (0) | 2020.09.24 |
8. Java 자바 [API] - StringTokenizer 클래스 (0) | 2020.09.24 |
7. Java 자바 [API]- String 클래스 (0) | 2020.09.24 |