본문 바로가기
Skill Stacks/Java

[TIL] Java (Regex)

by JayAlex07 2023. 6. 12.

[TIL] Java (Regex)

Regex란?

Regular Expression으로 특정 패턴을 찾아서, 문자를 찾거나 교체를 할 수 있다

  • 예를 들어, 전화번호 형태로 입력을 안 하면, 뒤로 못 넘어갈 수 있도록 만들 수 있다
  • 또는 한국어로만 입력이 가능하게 설정을 할 수 있다

Regex는 java.util.regex.* 를 통해서 사용이 가능하다

클래스

  • Pattern Class : 문자를 찾을 때에, 특청 패턴을 정의한다
  • Matcher Class : 패턴을 찾을 때에 사용한다
  • PatternSyntaxException Class : 정규식 (Regular Expression)에 에러를 보여준다

예시

if (Pattern.matches("^[ㄱ-ㅎ가-힣]*$", candidateName) == true) {
    if (조건문 1) {
        코드 실행1;
    }
} else {
    코드 실행2;
}
  • Pattern.matches("^[ㄱ-ㅎ가-힣]*$", candidateName)
    • "^[ㄱ-ㅎ가-힣]*$" : candidateName에 대한 입력값이 한글이 아닐 때에는 false를 반환한다

자주 사용하는 정규 표현식

Regular Expression 설명
^[0-9]*$ 숫자
^[a-zA-Z]*$ 영문자
^[가-힣]*$ 한글
\\w+@\\w+\\.\\w+(\\.\\w+)? E-Mail
^\d{2,3}-\d{3,4}-\d{4}$ 전화번호
^01(?:0 1
\d{6} \- [1-4]\d{6} 주민등록번호
^\d{3}-\d{2}$ 우편번호
  • ^ : 문자열 시작

  • $ : 문자열 종

  • | : 각 패턴을 찾는 것 (예. cat|dog|mouse => 문자열에 cat 또는 dog 또는 mouse가 있는지 찾아준다)

  • . : 하나의 캐릭터를 찾는 것

  • [] : 괄호 사이에는 문자의 집합이나 범위가 들어간다. 범위는 - 를 통해서 나타내고, ^가 있으면 not 이다

  • {} : 괄호 사이에 숫자가 들어오는데, 범위 또는 횟수를 나타낸다

  • () : 안에 문자를 하나의 문자로 인식한다

  • \d : 숫자 찾기

  • \D : 숫자를 제외한 모든 문자

  • \s : 빈 공간 찾기

  • \S : 공백이 아닌 것

  • \w : 알파벳이나 숫자

  • \W : 알파벳이나 숫자가 아닌 모든 것

'Skill Stacks > Java' 카테고리의 다른 글

[TIL] Java (진수 변환)  (0) 2023.06.24
[TIL] Java (Split, Join)  (0) 2023.06.23
[TIL] Java (Scanner)  (0) 2023.06.11
[TIL] Java (LocalDate)  (0) 2023.06.08
[TIL] Java (random number)  (0) 2023.06.07