TOP今月刊既刊I/OサポートQ&AWeb I/O通販お問い合わせ
 Q&A > 正規表現入門(改訂版) 書名検索: 詳細検索...
Q&A一覧
Q

本文中の表記について

p.230のJavaのutil.regexで許される正規表現の説明の中で、[a-z-[bc]] が「小文字のaからz、ただしbとcを除くもの」にマッチし、[a-z-[^def]]が「d,e,f」にマッチするとありますが、
import java.util.regex.*;
public class RegTest {
  public static void main(String[] args) {
      Pattern pattern;
      String[] targets = {"abcdefgh", "axyz"};
      pattern = Pattern.compile("^[a-z-[b-f]]+$");
      for (int i=0; i          Matcher matcher;
          matcher = pattern.matcher(targets[i]);
          boolean b = matcher.matches();
          System.out.println(targets[i] + "n" + b);
      }
  }
}
のようなプログラムを組んで動作を確認したところ、
abcdefgh
true
axyz
true
と、本の記述とは相容れないものとなりました。Sunのサイトにありますマニュアルには、このような表記を許すような記述は見つかりませんでした。
2007年03月02日受付
A
6年前、改訂前の本を書いた時点(JDK 1.4で正規表現が正式サポートされる前)に調査したときには、Sunのドキュメントに記載がありました。今回の改訂でフィードバックをかけるのが漏れておりました。
最終更新日:2010年06月16日 17時56分18秒
▲このページの上へ