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

気が進まない数量詞Java正規表現


貪欲な数量詞はデフォルトの数量詞です。貪欲な数量詞は、入力文字列から可能な限り一致します(可能な限り最長の一致)。一致が発生しなかった場合は、最後の文字を残して再度一致します。

気が進まない、または欲張りでない数量詞は可能な限り一致しませんが、一致が発生しなかった場合、最初は欲張りでない数量詞が最初の文字と一致し、入力文字列から別の文字を追加して一致を試みます。

「?」を配置すると貪欲な数量詞の後、それは気が進まないか、貪欲でない数量詞になります。以下は、気が進まない数量詞のリストです-

Quantifier 説明
re *? 0回以上のオカレンスに一致します。
re ?? ゼロまたは1回のオカレンスに一致します。
re +? 1つ以上のオカレンスに一致します。
re {n}? 正確にn回一致します。
re {n、}? 少なくともn回一致します。
re {n、m}? 少なくともn回、最大でm回のオカレンスに一致します。

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input text: ");
      String input = sc.nextLine();
      String regex = "[0-9]+?";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      while (matcher.find()) {
         System.out.print("Pattern found from " + matcher.start()+ " to " + (matcher.end()-1)+"::");
         System.out.print(matcher.group());
         System.out.println();
      }
   }
}

出力

Enter input text:
12345678
Pattern found from 0 to 0::1
Pattern found from 1 to 1::2
Pattern found from 2 to 2::3
Pattern found from 3 to 3::4
Pattern found from 4 to 4::5
Pattern found from 5 to 5::6
Pattern found from 6 to 6::7
Pattern found from 7 to 7::8

  1. Java正規表現のサブ式(?> re)を説明する

    部分表現/メタ文字「 re) 」は、バックトラックなしで独立したパターンに一致します。 例 import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class PatternExample {    public static void main(String args[]) {       //Reading String from user       System.out.

  2. Java正規表現を使用して文字列から数値を抽出する

    以下は、Javaで正規表現を使用して文字列から数値を抽出する方法を示す例です。 文字列を解析してそこから情報を抽出できることは、すべてのテスターが持つべき重要なスキルです。これは、APIをテストするときに特に役立ち、JSONまたはXML応答を解析する必要があります。 次のJava正規表現の例は、文字列から数字または数字を抽出することに焦点を当てています。 文字列からすべての数値を抽出 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExamples { public