
java正規表現 matchesがおかしい(バージョンの違い?)
正規表現を学びだしたところなのですが、patternのmatchesが上手くいきません。
このページ
http://www.site-cooler.com/java/j2se/regex.htm
に書かれている、
Pattern pattern = Pattern.compile("^Hello");
Matcher matcher = pattern.matcher("Hello World. This is regex sample.");
boolean blnMatch= matcher.matches();
System.out.println(blnMatch);
を実行してもfalseが返ってきてしまいます。
これはバージョンの違いからくるものなのでしょうか?
ちなみに私はjre1.6でeclipse3.5を使用しています。
回答をよろしくお願いします。
No.1ベストアンサー
- 回答日時:
Helloで始まっているかどうかをmatchesメソッドでそのプログラムのように調べる場合のパターンは、
"^Hello.*"
になる。これは「Helloで始まりその後に任意の文字が0文字以上続く」の意。
matchesメソッドはAPIのドキュメントに、
> 領域全体をこのパターンとマッチします。
とあるように質問のプログラムでは、検索対象の "Hello World. This is regex sample." 全体が "^Hello" とマッチするかどうかを調べるので当然falseになる。
findメソッドを使えばマッチする部分シーケンスを順次検索できるので、"^Hello" をパターンとして与えても1回目のfindの呼び出しでは先頭の"Hello"の部分にマッチしてtrueを返す。
No.3
- 回答日時:
たびたびで申し訳ない。
matchesを利用する場合なら#1で書いた"^Hello.*"でなく"Hello.*"でもいい。
matchesは入力全体とマッチするかどうかなので"^"を指定しなくてもHelloで始まらない入力に"Hello.*"はマッチしない。
findの場合は部分にマッチするので"^"の有無は意味が変わる。
No.2
- 回答日時:
補足
java.util.regexパッケージが導入されたのは1.4からだが、matchesメソッドの「パターンを入力全体とマッチさせる」という機能が変更されたことはないはずなのでバージョンによる結果の差異もないはず。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
0歳児の指しゃぶりに関して
-
エクセルVBAで、条件に一致する...
-
エクセルVBAにおけるON TIMEメ...
-
Excel : OpenTextメソッドが正...
-
ShellExecuteってなんで関数?
-
VBPをダブルクリックするとたま...
-
for文(拡張)内の変数(ローカ...
-
サーブレット GETからPOST送信
-
エクセルのマクロでプリンタを...
-
eclipseでabstractクラスをデバ...
-
Javaで「…」とは?
-
javascriptからjavaを呼び出したい
-
worksheets & rows メソッドは...
-
タブコントロールの問題 (VB)
-
ポストバック時のDatasourceバ...
-
eclipse-Tomcatでのデバッグに...
-
Labelコントロールに数字を代入...
-
コマンドプロンプト実行後に画...
-
クエリ文字列の"?"の後を非表示...
-
DataGridViewでセルクリックイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
JSPで<SELECT>の中にDBから持っ...
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
配列のメソッド
-
final修飾子を使っているのに、...
-
VBPをダブルクリックするとたま...
-
boolean型のフィールドとゲッタ...
-
エクセルVBAにおけるON TIMEメ...
-
0歳児の指しゃぶりに関して
-
mainメソッドのthrows節で設定...
-
VBA コピーが出来ません…!
-
CALLされていないメソッドを見...
-
PDFファイルから別ウィンドウで...
-
eclipse-Tomcatでのデバッグに...
-
【sendkeysメソッドが動かずに...
-
コマンドプロンプト実行後に画...
-
Labelコントロールに数字を代入...
-
ウィンドウを最前面にできません
-
エラーの意味を
おすすめ情報