[解決済み】Java Regexのmatches()とfind()の違いについて
2022-04-16 15:47:48
質問
との違いを理解しようとしています。
matches()
と
find()
.
Javadocによると、(私が理解したところでは)。
matches()
は、たとえ探しているものが見つかったとしても、文字列全体を検索します。
find()
は、探しているものが見つかれば停止する。
この仮定が正しいのであれば、いつ、どのような場合に
matches()
の代わりに
find()
ただし、マッチの数を数えたい場合は、この限りではありません。
私の意見では、Stringクラスは以下のようになります。
find()
ではなく
matches()
を組み込みのメソッドとして使用することができます。
では、まとめます。
- 私の仮説は正しいですか?
-
を使うと便利なのはどんなときですか?
matches()
の代わりにfind()
?
解決方法は?
matches
は、文字列全体に対して式をマッチさせようとし、暗黙のうちに
^
を開始し
$
をパターンの末尾に置くと、部分文字列を探さないことを意味します。したがって、このコードの出力は
public static void main(String[] args) throws ParseException {
Pattern p = Pattern.compile("\\d\\d\\d");
Matcher m = p.matcher("a123b");
System.out.println(m.find());
System.out.println(m.matches());
p = Pattern.compile("^\\d\\d\\d$");
m = p.matcher("123");
System.out.println(m.find());
System.out.println(m.matches());
}
/* output:
true
false
true
true
*/
123
の部分文字列です。
a123b
ということで
find()
メソッドは真を出力します。
matches()
を「見る」だけです。
a123b
とは異なります。
123
となり、falseを出力します。
関連
-
[解決済み] java.lang.ClassNotFoundException: クラス com.ibm.db2.jcc.DB2Driver が Worklight プラットフォームまたはプロジェクトに見つかりませんでした。
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み】HashMap、LinkedHashMap、TreeMapの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JVMフラグCMSClassUnloadingEnabledは、実際に何をするのですか?
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] なぜJPAには@Transientアノテーションがあるのですか?
-
[解決済み] java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません。
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] 1行目2列目でBEGIN_ARRAYを期待したが、BEGIN_OBJECTだった。
-
[解決済み] 最も近い整数への切り捨て - 私は不正をしているのでしょうか、それともこれは十分すぎるほど適切なのでしょうか?
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] java.io.IOException。DER長の短い読み取り