본문 바로가기

국비교육/국비교육 복습

day14_regex_Test03 : 정규 표현식(Regular Expression) (2)

(Q) 사용자가 입력한 닉네임이 다음 규칙에 맞는지 검사하도록 코드를 작성하시오

  • 닉네임은 한글 또는 숫자로만 작성되어야 한다
  • 닉네임은 2글자 이상 10글자 이하로 작성되어야 한다
  • ㅋㅋㅋ, ㅡㅡ와 같은 자음 모음만 있는 경우는 불가능하다

- 문자열을 검사하기 위한 식(도우미 사이트 : regexper)

- 주요 명령

  • ^ : 문자열의 시작지점
  • $ : 문자열의 종료지점
  • [abc] : a, b, c중 하나(one of)
  • [a-c] : a부터 c 사이의 글자 중 하나(범위표시)
  • [a-c]{5} : a부터 c사이의 글자 중 하나가 5번 반복
  • [a-c]{3,5} : a부터 c사이의 글자 중 하나가 3에서 5번 반복

정규 표현식 시각화

- One of : 1회 실행을 의미한다

- 1...9 times : 1회에서 9회 사이의 횟수 반복을 의미한다

- 첫 번째 One of는 '한글 또는 숫자로만 작성되어야 한다'를 의미한다

- 첫 번째 One of를 제외하면 첫 번째 과정을 1회에서 9회 사이의 횟수만큼 반복하면 된다

 

메인 메소드

package day14_regex;

import java.util.Scanner;
import java.util.regex.Pattern;

public class Test03 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		// 닉네임 생성 규칙의 정규 표현식
		String regex = "^[가-힣0-9]{2,10}$";
		
		// 사용자 입력 닉네임
		String user = sc.next();
		
		// 판정
		boolean check = Pattern.matches(regex, user);
		
		// 출력
		if(check) {
			System.out.println("해당 닉네임 사용 가능");
		}
		else {
			System.out.println("해당 닉네임 사용 불가능");
		}
	}
}