質問: 正規表現の中で、「^」は文字列の先頭を表すと思います。 例えば、「^a」だと、「aで始まる文字列」という意味になると思います。 しかし、実際に試してみたところ、正規表現の「^a」では、文字列"ab"とはマッチしません。 なぜでしょう・・・ 色々と自分なりに調べてみたところ、下記のサイトにたどり着きました。 http://www.site-cooler.com/java/j2se/regex.htm#3 こちらのサイトさんの 【Javaでの使い方「マッチする文字列を検索」】 という項目のところで、正規表現「^Hello」で、「Hello」で始まる文字列というマッチングをされています。 そして、"Hello World. This is regex sample."という文字列とマッチングさせ、結果はtrueになると。 しかし、私が全く同じソースを実行しても結果はfalseになります。 何か環境がおかしいのでしょうか?? jdkは5.0を使用しています・・・。 よろしくお願いします。
回答: matchesメソッドは、領域全体とマッチングしますよね。 その場合、正規表現の「^」は意味をなさないんでしょうか?? String str = "ab"; System.out.println(Pattern.matches("^a", str)); として、aから始まる文字列でマッチングしたいのですが、結果はfalseになります。