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

Javaで正規表現を使用してパターンマッチングを行う方法は?


正規表現は、入力テキストを検索するためのパターンを定義/形成する文字列です。正規表現には1つ以上の文字が含まれる場合があり、正規表現を使用して文字列を検索または置換できます。

Javaは、正規表現とのパターンマッチングのためのjava.util.regexパッケージを提供します。 パターン このパッケージのクラスは、正規表現のコンパイル済み表現です。正規表現を文字列と照合するために、このクラスは2つのメソッド、つまり-

を提供します。
  • compile(): このメソッドは、正規表現を表す文字列を受け入れ、Patternオブジェクトのオブジェクトを返します。
  • matcher(): このメソッドはString値を受け入れ、指定されたStringを現在のパターンオブジェクトによって表されるパターンに一致させるマッチャーオブジェクトを作成します。

次のJavaプログラムは、ユーザーからの文字列を受け入れ、アルファベットが含まれているかどうかを確認し(両方の場合)、数字も受け入れます。

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
   public static void main( String args[] ) {
      String regex = "[a-zA-Z][0-9]?";
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter an input string: ");
      String input = sc.nextLine();
     
      //Creating a Pattern object
      Pattern p = Pattern.compile(regex);
      //Creating a Matcher object
      Matcher m = p.matcher(input);  
      if(m.find()) {
         System.out.println("Match occurred");
      }else {
         System.out.println("Match not occurred");
      }
   }
}

出力1

Enter an input string:
sample text
Match occurred

出力2

Enter an input string:
sample text 34 56
Match occurred

  1. Javaの正規表現$(ドル)メタ文字

    部分表現/メタ文字「$ 」は行の終わりに一致します。 例1 import java.util.regex.Matcher; import java.util.regex.Pattern; public class EndWith {    public static void main( String args[] ) {       String regex = "Tutorialspoint$";       String input = "Hi how are you welco

  2. Pythonの正規表現を使用して日付文字列を照合するにはどうすればよいですか?

    以下のコードの最初のケースでは、指定された日付文字列がd-m-y形式と一致し、2番目のケースでは日付文字列が形式と一致しません 例 import re datestring = '21-09-1991' foo =re.match('(\d{2})[/.-](\d{2})[/.-](\d{4})$', datestring) print foo.group() datestring = '1991-09-21' foo =re.match('(\d{2})[/.-](\d{2})[/.-](\d{4})$', datestring