1. 정규 표현식이란
정규표현식이란 선택한 문자열에 특정 패턴 문자들이 있는지 확인하는 표현식입니다.
정규표현식을 이용해서 두가지 작업을 진행할 수 있습니다.
1) 입력된 문자열이 전화번호, 이메일, IP주소, 주민등록번호 등의 형식과 일치하는지 검증할 수 있습니다.
2) 입력된 문자열의 정해진 형식이 있다면 원하는 값을 추출할 수 있습니다. (ex: json, log, html tag 등..)
이번 포스팅에서는 문자열 검증에 대해서 정리해보겠습니다.
2. 정규 표현식 정리
정규 표현식 | 설명 |
^ | 문자열의 시작 |
$ | 문자열의 종료 |
. | 임의의 한 문자 |
* | 앞의 문자가 0개 ~ 여러개 있음 ex) [a-z]* 소문자 알파벳을 0개 ~ 여러개 입력 가능 .* 임의의 문자를 0개 ~ 여러개 입력 가능 |
+ | 앞의 문자가 1개 ~ 여러개 ex) .+ 임의의 문자를 1개 ~ 여러개 입력 가능 |
? | 앞의 문자가 0개 ~ 1개 있음 ex) .? 임의의 문자를 0개 ~ 1개를 입력할 수 있음 \.? . 문자를 0개 ~ 1개를 입력할 수 있음 |
[] | 문자의 집합이나 범위 안에 속한 한개의 문자를 표현할 때 사용한다. 범위를 나타낼 땐 - 기호를 사용하며 ^문자를 앞에 붙여 부정을 표현할 수 있다. ex) [a-z&&[^u-x]] 소문자 알파벳 중에서 u ~ x 를 제외한 나머지 알파벳만 입력이 가능하다. |
{} | 앞 문자의 횟수를 나타낸다 ex) .{3,8} 임의의 문자를 3자에서 8자 사이로 입력해야한다. [a-z]{3,} 소문자 알파벳 3자 이상 입력해야한다. |
() | ()는 여러개의 문자를 하나의 덩어리로 인식한다. ex) (Mon|Tues|Fri)day Monday, Tuesday, Friday를 입력할 수 있습니다. (([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])? 00:00:00 ~ 23:59:59 형식으로 입력하거나 빈값을 입력할 수 있다. |
| | 패턴 안에서 OR 연산을 수행합니다. |
\w | 숫자, 알파벳, _ 문자 |
\W | \w를 제외한 문자 |
\d | 숫자(0~9) |
\D | \d를 제외한 문자 |
\s | 공백 문자 (\t\n\x\B\f\r) |
\S | \s를 제외한 문자 |
\b | 공백을 기준으로 단어를 찾는다. (문자열 검색을 위해 사용되는 듯 하다.) ex) cat\b cat으로 끝나는 단어를 검색한다. input : cat concat |
\B | \b과 반대 |
\ | . 이나 + 같이 정규 표현식 문자를 문자로 표현하기 위해 문자 앞에 \를 붙여야한다. ex) \. \+ |
3. 자바의 정규 표현식
자바에서 정규 표현식을 사용하려면 java.util.regex 패키지의 Pattern클래스와 Matcher클래스를 사용해야 합니다.
Pattern 클래스 : 정규 표현식을 컴파일하는 객체입니다.
Mattcher 클래스 : 정규 표현식을 해석하고 입력된 문자열에 대해 일치여부를 판별할 때 사용되는 클래스입니다.
static public void test2() {
//숫자, 알파벳, _!@#$% 문자를 입력할 수 있다.
Pattern pattern = Pattern.compile("[\\w!@#$]{8,13}");
Matcher matcher = pattern.matcher("dasdqw_e#"); //true
System.out.println(matcher.matches());
}
'IT > JAVA' 카테고리의 다른 글
[JAVA] SHA-256 암호화 하기 (2) | 2021.04.17 |
---|---|
[JAVA] POI Excel 다운로드 기능 만들기 (0) | 2021.04.06 |
[JAVA] 입출력 스트림 (InputStream, OutputStream)란? (0) | 2020.11.19 |
[JAVA] jjwt library 사용방법 - JWT(Java Web Token) (0) | 2020.08.11 |
[JAVA] 배열 설명 및 초기화 방법 (0) | 2020.07.09 |