English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java RegEx를 사용하여 비단어 문자를 어떻게 매칭하나요?

영어 알파벳(대소문자 모두)와 숫자(0부터9기타 모든 문자는 단어 문자가 아닌 것으로 간주됩니다. 이들을 매치할 수 있는 원자기 문자 "\ W"를 사용할 수 있습니다.

예제1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main(String args[]) {
      //사용자로부터 문자열을 읽어들이기
      System.out.println("문자열을 입력하세요");
      Scanner sc = new Scanner(System.in);
      String input = sc.nextLine();
      String regex = "^\\W{5";
      //정규 표현식 컴파일
      Pattern pattern = Pattern.compile(regex);
      //검색 매치어 오브젝트
      Matcher matcher = pattern.matcher(input);
      if(matcher.find()) {
         System.out.println("일치 발생");
      } else {
         System.out.println("일치 발생하지 않음");
      }
   }
}

출력1

문자열을 입력하세요
*&&^#
일치 발생

출력2

문자열을 입력하세요
hello
일치 발생하지 않음

예제2

import java.util.Scanner;
public class RegexExample {
   public static void main(String args[]) {
      String regex = "\\W*";
      System.out.println("입력 값을 입력하세요:");
      Scanner sc = new Scanner(System.in);
      String input = sc.nextLine();
      boolean bool = input.matches(regex);
      if(bool) {
         System.out.println("일치 발생");
      } else {
         System.out.println("일치 발생하지 않음");
      }
   }
}

출력 결과

입력 값을 입력하세요:
#***
일치 발생
좋아할 만한 것