관리 메뉴
꿈 많은 사람의 이야기
자바 정규 표현식(regular expression) 본문
반응형
문자열이 정해져 있는 형식(정규 표현식)으로 구성되어 있는지 검증해야 하는 경우가 있다. 예를 들어 이메일 등이다. 그것을 검증 하는 방법이 있다.
정규 표현식 작성 방법
기호 |
설명 | ||
[ ] |
한 개의 문자 |
[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개까지 | ||
( ) |
그룹핑 | ||
^ |
시작 | ||
$ |
끝 |
이 표를 가지고 실습을 해보자
다음은 02-123-1234 또는 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+이 없거나 한 번 더 올 수 있음 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
public static void main(String[] args) { String regExp = "(02|010)-\\d{3,4}-\\d{4}"; //escape 문자 \ 방지를 위해서 \\를 두개 써준다. String data = "010-1111-1234"; boolean result = Pattern.matches(regExp, data); if(result) { System.out.println("정규식이 일치합니다."); } else { System.out.println("정규식이 일치하지 않습니다."); } regExp = "\\w+@\\w+\\.\\w+(\\.\\w+)?"; data = "asdfnaver.com"; result = Pattern.matches(regExp, data); if(result) { System.out.println("정규식이 일치합니다."); } else { System.out.println("정규식이 일치하지 않습니다."); } } Colored by Color Scripter |
와 같이 나오게 된다
Pattern 클래스는 문자열의 정규표현식을 검사해준다.
java.util.regex.Pattern 클래스의 정적 메소드인 matches() 메소드가 검증 하는 기능을 제공해준다.
반응형
'java' 카테고리의 다른 글
자바 와퍼(wrapper, 포장) 클래스, 박싱(boxing), 언박싱(unboxing), 자동 박싱(auto boxing) (0) | 2017.08.18 |
---|---|
자바 배열 정렬(Arrays.sort() 이용) (0) | 2017.08.18 |
자바 정규 표현식(regular expression) (0) | 2017.08.18 |
자바 String 클래스(StringBuilder), split 메소드 (0) | 2017.08.18 |
java 연결리스트 만들기(java linked list) (0) | 2017.08.18 |
자바 String 클래스(substring, length, toUpperCase, toLowerCase, replace, indexOf 메소드) (0) | 2017.08.18 |
0 Comments