ホームページ  >  記事  >  Java  >  Java で正規表現マッチングに Regex 関数を使用する方法

Java で正規表現マッチングに Regex 関数を使用する方法

WBOY
WBOYオリジナル
2023-06-26 14:33:191639ブラウズ

正規表現は文字列操作の式であり、文字列の検索、置換、検証などのさまざまなシナリオで使用できます。 Java では、正規表現一致操作に Regex 関数を使用できます。この記事では、Java で正規表現マッチングに Regex 関数を使用する方法を紹介します。

1. Regex 関数の概要

Java の Regex 関数は java.util.regex パッケージに属し、正規表現の一致操作を実行するためのさまざまなメソッドを提供します。コアクラスは、Pattern と Matcher です。

Pattern クラスは正規表現のパターンを定義するために使用されます。そのコンストラクターは Pattern.compile(String regex) です (regex は正規表現の文字列表現です)。

Matcher クラスは文字列の照合に使用されます。そのコンストラクターは pattern.matcher(String input) で、pattern は Pattern オブジェクト、input は照合する必要がある文字列です。

2. 正規表現の構文

正規表現を照合する前に、正規表現の構文を理解する必要があります。以下に、正規表現構文の基本要素をいくつか示します。

  1. 通常の文字: a、b、c、d、およびその他の文字は、それ自体を表します。
  2. 特殊文字: バックスラッシュ \ の後に特定の文字が続くと、. は . を表し、? は ? を表すなど、一部の特殊文字を表すことができます。
  3. 文字グループ: 角括弧 [] を使用すると、角括弧内の任意の文字と一致します。たとえば、[a-z] を使用すると、a から z までの任意の文字と一致します。
  4. 排他的な文字グループ: 角括弧 [^] を使用して、括弧内の文字を除く任意の文字と一致させます。たとえば、1 のように数字以外の文字と一致させます。
  5. 量子: 前の文字の出現数を制限するために使用されます。一般的に使用される量子子には、、,?、{m}、{m,}、{m,n} が含まれます。ここで、先行する文字が 0 個以上一致することを意味し、1 個以上の一致を示し、? は 0 または 1 の一致を示し、{m} は m が一致する必要があることを示し、{m,} は m 個以上の一致を示し、{m ,n } は、m を n に一致させることを意味します。
  6. セレクターとグループ化: グループ化を示すには括弧 () を使用し、ab または cd と一致する (ab|cd) などのセレクターを示すには縦棒 | を使用します。

3. Regex 関数の使用

Regex 関数を使用する一般的なプロセスは次のとおりです: 正規表現のパターン (つまり、Pattern オブジェクト) を定義し、そのパターンに対してマッチング操作を実行します。照合する必要がある文字列 (つまり、Matcher オブジェクト) を照会し、照合結果を照会します。

次は Regex 関数の基本的な使用例です:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexExample {

    public static void main(String[] args) {
        String regex = "cat";
        String input1 = "The cat is on the mat.";
        String input2 = "A cat and a dog.";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher1 = pattern.matcher(input1);
        Matcher matcher2 = pattern.matcher(input2);

        System.out.println("input1中是否包含cat:" + matcher1.find());
        System.out.println("input2中是否包含cat:" + matcher2.find());
    }
}

出力結果は次のとおりです:

input1中是否包含cat:true
input2中是否包含cat:true

上記のコードでは、最初に正規表現パターンが定義されています。つまり、文字列「cat」です。次に、2 つの異なる入力文字列に対してマッチング操作を実行します。

特定のマッチング操作では、まず Pattern.compile(String regex) メソッドを通じて Pattern オブジェクトを作成し、次にそのオブジェクトの matcher(String input) メソッドを通じて Matcher オブジェクトを作成します。 Matcher オブジェクトを使用する find() メソッドは、入力文字列にパターン内の一連の文字が含まれているかどうかをクエリします。

Matcher オブジェクトは、find() メソッドの使用に加えて、一致の開始位置、一致した部分文字列など、一致結果に関するさまざまな情報を取得するための他の多くのメソッドも提供します。

4. 一般的に使用される正規表現の例

  1. 番号であるかどうかを確認してください:
public static boolean isDigit(String str) {
    Pattern pattern = Pattern.compile("[0-9]*");
    return pattern.matcher(str).matches();
}
  1. 正当な電子メール アドレスであるかどうかを確認してください:
public static boolean isEmail(String str) {
    Pattern pattern = Pattern.compile("^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
    return pattern.matcher(str).matches();
}
  1. 正規の携帯電話番号であるかどうかを確認してください:
public static boolean isMobileNumber(String str) {
    Pattern pattern = Pattern.compile("^1\d{10}$");
    return pattern.matcher(str).matches();
}
  1. 正規の ID 番号であるかどうかを確認してください:
public static boolean isIDCardNumber(String str) {
    Pattern pattern = Pattern.compile("^\d{17}[0-9xX]$");
    return pattern.matcher(str).matches();
}

5. 注意事項

  1. 正規表現が正しいことを確認するには、まず正規表現オンライン テスト ツールで検証することをお勧めします。
  2. 複数のマッチング操作を実行する場合は、while ループ内で Matcher オブジェクトの find() メソッドを使用して、一致するすべての位置を取得する必要があります。
  3. 正規表現によるマッチング操作を実行する場合は、正規表現に依存しすぎないよう注意し、必要な機能を実現するために最も簡単な方法を選択する必要があります。

上記は、Java で正規表現マッチングに Regex 関数を使用する方法の紹介と例です。


  1. 0-9

以上がJava で正規表現マッチングに Regex 関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。