* 000以外の3桁の数字にマッチする正規表現 [#n8f5e9a2]
  (?!000)\d{3}
(?! )というのは正規表現の「先読み」というものらしい、、むずい、、、

* PerlとJavaの正規表現の違い [#g0fc3f16]
PerlとJavaで正規表現におけるマッチの概念が微妙に違うようです。
Perlの場合
 $str = "AAAaaaBBB";
 if( $str =~ m/aaa/ ){
    print STDOUT "match\n";
 }
の結果はtrue。

一方、Javaの場合
 Pattern pattern = Pattern.compile("aaa");
 Matcher matcher = pattern.matcher("AAAaaaBBB");
 boolean b = matcher.matches();
の結果はfalse。

上は「文字列の中にパターンにマッチする部分があるか」&br;
下は「文字列全体がパターンにマッチするか」&br;
という違いらしい。&br;

ちなみにJavaでPerlと同じような意味あいで
マッチする部分があるかどうかを調べるには&br;
matcher.find()を使えばよい。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

メンバーのみ編集できます