現在正規表現やパターンの処理について勉強中なのですが、
groupメソッドについて質問があります。
以下のコードのコメント部分をコメントアウトするとgroupメソッドで例外発生が発生するのですが
なぜでしょうか?
Java
1import java.util.regex.Matcher; 2import java.util.regex.Pattern; 3 4class Test { 5 public static void main(String[] args) { 6 String word = "I am glad to meet you,too."; 7 Pattern pattern = Pattern.compile("\\Sto\\S|\\bo\\b"); 8 Matcher m = pattern.matcher(word); 9 10 if (m.find()) { //ここをコメントアウトするとgroupメソッドで例外発生 11 String matchstr = m.group(); 12 System.out.println(matchstr + "の部分にマッチしました"); 13 } //ここをコメントアウトするとgroupメソッドで例外発生 14 } 15} 16
findメソッドは単純な判定処理だと思っているのですが、それ以上の効力を発揮しているのでしょうか。
Java APIを見ると「マッチが成功した場合は、start、end、およびgroupメソッドを使用して詳細情報を取得できます。」と書いているのでやはりこのメソッドで判定しないとgroupメソッドが使えないということでしょうか。
ロジック的にどのような仕組みになっているのでしょうか。findメソッドとgroupメソッドは互いに孤立しているのでどのような作用が働いているのか知りたいです。
もし分かる方がいらっしゃればよろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。