Java
 Computer >> コンピューター >  >> プログラミング >> Java

一致するJava正規表現の位置と長さの決定


java.util.regex.Matcherクラスのstart()メソッドは、一致の開始位置を返します(一致が発生した場合)。

同様に、Matcherクラスのend()メソッドは、一致の終了位置を返します。

したがって、start()メソッドの戻り値は一致の開始位置になり、end()メソッドとstart()メソッドの戻り値の差は一致の長さになります。

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatcherExample {
   public static void main(String[] args) {
      int start = 0, len = -1;
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      String regex = "\\d+";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      while (matcher.find()) {
         start = matcher.start();
         len = matcher.end()-start;
      }
      System.out.println("Position of the match : "+start);
      System.out.println("Length of the match : "+len);
   }
}

出力

Enter input text:
sample data with digits 12345
Position of the match : 24
Length of the match : 5

  1. JavaRegExを使用して固定文字セットを照合する方法

    文字クラスを使用すると、固定された文字セットから1つの文字を受け入れることができます。たとえば、 「[tmp]」という表現 」は文字tまたは、mまたは、pに一致します。 「[^tp]」という表現 」は、tまたはp以外の文字と一致します。 例1 import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example {    public static void main(String args[]) { &nb

  2. Javaの長さと長さ()の違いは何ですか?

    長さ は配列のインスタンス変数です Javaではlength() 文字列クラスのメソッドです 。 長さ 配列はオブジェクトです 同じtyの固定数の値を保持します pe 。 長さ 配列内の変数は、配列の長さを返します つまり、配列に格納されている要素の数 。 配列が初期化されると、その長さは変更できません 、したがって、長さ変数を直接使用して配列の長さを取得できます。 長さ 可変 配列にのみ使用されます 。 例 public class ArrayLengthTest {    public static void main(String args[]) { &nbs