728x90
Java 정규표현식 (regex : Regular Expression)
자바 프로그램에서 정규표현식을 사용하기 위해서는 java.util.regex 패키지를 사용하는데, 주로 Pattern 클래스와 Matcher 클래스를 사용한다.
정규표현식 문법
^ | 문자열의 시작 |
$ | 문자열의 끝 |
. | 임의의 한 문자 |
* | 문자가 0번 이상 발생 |
+ | 문자가 1번 이상 발생 |
? | 문자가 0번 또는 1번 발생 |
[ ] | 문자의 집합 범위를 나타냄 [0-9] : 숫자 (0부터 9), [a-z] : 알파벳 (a부터 z) 앞에 ^가 나오면 not의 의미 ^[0-9] : 숫자 (0부터 9) 이외의 모든 문자 |
{ } | 횟수 또는 범위를 의미 |
( ) | 소괄호 안의 문자를 하나의 문자로 인식 |
| | or 조건 |
\ | 확장 문자의 시작 |
\b | 단어의 경계 |
\B | 단어가 아닌 것의 경계 |
\A | 입력의 시작부분 |
\G | 이전 매치의 끝 |
\Z | 입력의 끝이지만 종결자가 있는 경우 |
\z | 입력의 끝 |
\s | 공백문자 |
\S | 공백문자가 아닌 나머지 문자 |
\w | 알파벳이나 숫자 |
\W | 알파벳이나 숫자를 제외한 문자 |
\d | [0-9]와 동일 |
\D | 숫자를 제외한 모든 문자 |
정규식 예제
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CheckUtil {
// 휴대폰번호 형식체크
public static boolean checkPhone(String str) {
String pattern = "";
pattern = "^01(?:0|1|[6-9])[.-](?:\\d{3}|\\d{4})[.-](\\d{4})$";
return Pattern.matches(pattern, str);
}
// 휴대폰번호 포맷변경 (01012345678 -> 010-1234-5678, 0101234567 -> 010-123-4567)
public static String phoneFormat(String number) {
String regEx = "(\\d{3})(\\d{3,4})(\\d{4})";
return number.replaceAll(regEx, "$1-$2-$3");
}
// 2~12 자리의 영문,숫자로만 구성된 ID
public static boolean checkId(String str) {
String pattern = "";
pattern = "^[a-zA-Z0-9]{2,12}$";
return Pattern.matches(pattern, str);
}
// 2~12 자리의 영문(대소), 한글로만 구성된 이름
public static boolean checkName(String str) {
String pattern = "";
pattern = "^[a-zA-Z가-힣]{2,12}$";
return Pattern.matches(pattern, str);
}
// 생년월일 1990-02-28 과 같은 형식
public static boolean checkBirth(String str) {
String pattern = "";
pattern = "^(19[0-9][0-9]|20\\d{2})-(0[0-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$";
return Pattern.matches(pattern, str);
}
}
참고링크
728x90
'Java' 카테고리의 다른 글
Calendar 클래스로 날짜 계산하기 (0) | 2022.09.04 |
---|---|
String.format 이용한 문자열 형식 설정 (0) | 2022.08.01 |
Java image resize 크기 변환 (0) | 2022.07.04 |
람다식(Lambda expression) - java.util.function 패키지 (0) | 2022.06.20 |
람다식(Lambda expression) (0) | 2022.06.13 |