「Java」Pattern.CASE_INSENSITIVEで大文字小文字区別しないマッチングを有効にする方法
説明
public static final int CASE_INSENSITIVE
大文字と小文字を区別しないマッチングを有効にします。
デフォルトの大文字と小文字を区別しないマッチングでは、US-ASCII文字セットの文字だけがマッチします。
Javaコード
package com.arkgame.study; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CaseSenDemo { private static final String comPat = "[a-z]"; public static void main(String[] args) { Pattern ptn = Pattern.compile(comPat, Pattern.CASE_INSENSITIVE); // 大文字 String strA = "TEST"; // 小文字 String strB = "test"; // 大文字小文字 String strC = "Test"; // 数字 符号 String strD = "#123"; if (func(ptn, strA) == true) { System.out.println("文字例Aが正規表現式にマッチしました。"); } if (func(ptn, strB) == true) { System.out.println("文字列Bが正規表現式にマッチしました。"); } if (func(ptn, strC) == true) { System.out.println("文字列Cが正規表現式にマッチしました。"); } if (func(ptn, strD) == true) { System.out.println("文字列Dが正規表現式にマッチしました。"); } else { System.out.println("文字列Dが正規表現式にマッチしません。"); } } public static boolean func(Pattern pattern, String target) { // 正規表現エンジンを作成 Matcher mt = pattern.matcher(target); return mt.find(); } }
結果
文字例Aが正規表現式にマッチしました。
文字列Bが正規表現式にマッチしました。
文字列Cが正規表現式にマッチしました。
文字列Dが正規表現式にマッチしません。