English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaのMatcher reset()メソッドと例

このjava.util.regex.Matcherのこのクラスは、さまざまなマッチング操作を行うエンジンを表します。このクラスにはコンストラクタがありませんが、以下を使用できます。matches()java.util.regex.Patternのメソッドを生成/このクラスのオブジェクトを取得

このreset()この(マッチャー)クラスのメソッドは、すべての状態情報を除き、この文字列シーケンスをデフォルト値にリセットし、追加位置を0にします。

例1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reset {
   public static void main(String[] args) {
      String str = "<p>This<b>is</>b> <b>例<b>です/>b>HTML<b>スクリプト<b>は/>b> <b>すべて<b>の/>b> 代替<b>単語<b>です/>b> bold<b>は/>b></>p>";
      //太字タグの内容を正規表現でマッチング
      String regex = "<b>(\\S+/>b>";
      //パターンオブジェクトを生成
      Pattern pattern = Pattern.compile(regex);
      //正規表現で構文化されたパターンを文字列中にマッチング
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println("マッチャーの状態: ")+matcher.toMatchResult());
         String result = matcher.group()1);
      {
      matcher = matcher.reset();
      System.out.println("マッチャーのリセット後の状態: "+matcher.toMatchResult());
   {
{

出力結果

マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>is</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>example</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>script</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>every</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>>word</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>bold</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=]
マッチャーのリセット後の状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=]

このメソッドの別バージョンは、文字列データを受け取り、それを使用してマッチャーをリセットします。

例2 

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reset {
   public static void main(String[] args) {
      String str = "<p>This<b>is</>b> <b>例<b>です/>b> HTML<b>スクリプト<b>は/>b> <b>すべて<b>の/>b> 代替<b>単語<b>です/>b> bold<b>は/>b></>p>";
      //太字タグの内容を正規表現でマッチング
      String regex = "(\\S+);
      //パターンオブジェクトを生成
      Pattern pattern = Pattern.compile(regex);
      //正規表現で構文化されたパターンを文字列中にマッチング
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println("マッチャーの状態: ")+matcher.toMatchResult());
         String result = matcher.group()1);
      {
      matcher = matcher.reset("<b>this</b> is <b>new</b> string <b>after</b> reset");
      while (matcher.find()) {
         System.out.println("マッチャーのリセット後の状態: "+matcher.toMatchResult());
      {
   {
{

出力結果

マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>is</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>example</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>script</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>every</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>word</b>]
マッチャーの状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>bold</b>]
マッチャーのリセット後の状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,51 lastmatch=<b>this</b>]
マッチャーのリセット後の状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,51 lastmatch=<b>new</b>]
マッチャーのリセット後の状態: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,51 lastmatch=<b>after</b>]