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("一致が発生しません");
      }
   }
}

出力結果

入力値を入力してください:
#***
一致が発生しました
おすすめ