문자열 패턴을 제한적으로 검사하고 추출합니다.
Pattern은 정규식을 컴파일하고 Matcher는 특정 입력에서 검색합니다. matches는 전체 일치, find는 부분 검색을 반복합니다. Java 문자열 안에서는 역슬래시를 한 번 더 이스케이프합니다.
USERNAME은 소문자 하나로 시작하고 뒤에 소문자, 숫자, 밑줄이 2개에서 15개 이어지는 3~16자 이름만 받으므로, 숫자로 시작하는 2fast와 두 글자뿐인 ab는 false입니다. COURSE_NUMBER의 괄호는 캡처 그룹이라 find가 강좌-17과 강좌-24를 차례로 찾을 때마다 group(1)이 숫자 17과 24만 돌려줍니다. matches는 원래 입력 전체가 맞아야 true이므로 패턴의 ^와 $를 빼도 결과는 같습니다.
반복 사용하는 패턴은 static final로 한 번 컴파일합니다. 복잡한 형식은 여러 검증 단계나 전용 파서를 사용합니다.
사용자 제공 정규식과 과도한 backtracking 패턴은 CPU를 오래 사용할 수 있어 패턴과 입력 길이를 제한합니다.
Java 문자열의 \d를 정규식에 전달하려면 "\\d"처럼 작성해야 합니다.
직접 바꿔보세요사용자 이름 길이를 3~12자로 제한하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.