/tips/java/reqex **Mathcerの使用例1 「()」で括った部分をグループとして、マッチした部分を個別に抽出することができます。
:// パターンをコンパイル :Pattern p = Pattern.compile("([a-z]+),([0-9]+),(true|false)"); :// 引数に指定した文字列にマッチ :Matcher m = p.matcher("abc,123,true"); :// 結果を取得 :boolean f = m.find(); :int gc = m.groupCount(); :System.out.println("find="+f); :System.out.println("groupCount="+gc); :System.out.println("group[0]="+m.group(0)); :System.out.println("group[1]="+m.group(1)); :System.out.println("group[2]="+m.group(2)); :System.out.println("group[3]="+m.group(3));
以下、実行結果です。 :find=true :groupCount=3 :group[0]=abc,123,true :group[1]=abc :group[2]=123 :group[3]=true
**肯定先読みの不具合? jdk1.6.0_04で以下のコードを実行すると「false」を返します。Rubyで同じようなパターンマッチングをすると「true」になります。どちらが正しいのでしょうか? :System.out.println("foobar".matches("foo(?=bar)")); // false
**キーワードをマークアップする 正規表現グループによって、置換後の文字列に(元の文字列の)マッチした部分を使用することができます。下記例では、マッチした部分を「..」で囲みます。 :String marked = "foobar".replaceAll("([abr]+)", "$0"); // foobar
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について