※ ChatGPTを利用し、要約された質問です(原文:Matcher)
正規表現のマッチングについて
このQ&Aのポイント
正規表現のマッチング結果が思った通りにならない場合、マッチングパターンや対象文字列に問題がある可能性があります。
この場合、Matcherクラスのfindメソッドがfalseを返す可能性があります。
マッチング結果が思った通りにならない場合、正規表現パターンを確認し、対象文字列がパターンにマッチするかどうかを確認する必要があります。
こんばんは。
どうしてもわからない部分があります。
Pattern pattern = Pattern.compile(".*\\[.*@.* .*\\]\\$ ", Pattern.DOTALL);
Matcher matcher = pattern.matcher("\r\npwd\r\n/home/hoge\r\n[hoge@hoge-fedora hoge]$ ");
System.out.println("1:" + matcher.find(0));
System.out.println("2:" + matcher.groupCount());
上記のプログラムを実行すると、私の考えでは
1:true
2:1
となると思うのですが、実際は
1.true
2:0
となります。
正規表現と一箇所マッチしてるのに、なぜ0なのでしょうか?
ご存知の方いらっしゃいましたら教えてください。お願いします。
お礼
お忙しい中書込みありがとうございます! 今試してみたところcrum様のおっしゃる通りでした。 助かりました~ 本当にありがとうございます。 API読んでも意味がわからず、ネットで検索してみたもののやっぱりわからず、職場で一人途方にくれておりました・笑 どうもありがとうございました。