概要
Javaで「CANON_EQフラグ(パターンと対象の文字がUnicode正規等価であればマッチする)」の動作を確認しました。
以下のページを参考にしました。
実装
以下のファイルを作成しました。
JSample24_1.java
import java.util.regex.*;
class JSample24_1{
public static void main(String[] args){
String target = "て\u3099は";
String regex = "では";
Pattern p1 = Pattern.compile(regex);
Matcher m1 = p1.matcher(target);
System.out.println(target + ":" + m1.find());
System.out.println("---- ----");
Pattern p2 = Pattern.compile(regex, Pattern.CANON_EQ);
Matcher m2 = p2.matcher(target);
System.out.println(target + ":" + m2.find());
}
}
以下のコマンドを実行しました。
$ javac JSample24_1.java
$ java JSample24_1
では:false
---- ----
では:true
まとめ
何かの役に立てばと。