ホームページ >Java >&#&チュートリアル >詳しい説明と使い方:Java正規表現解析

詳しい説明と使い方:Java正規表現解析

WBOY
WBOYオリジナル
2024-01-09 10:54:331091ブラウズ

詳しい説明と使い方:Java正規表現解析

Java 正規表現の詳細な説明と使用法

正規表現 (正規表現) は、さまざまなプログラミング言語で使用できる強力なテキスト処理ツールです。アプリケーション。 Java では、正規表現を使用して、文字列の一致、置換、分割などの操作を実行できます。この記事では、Java 正規表現の使用方法を詳しく紹介し、具体的なコード例を示します。

  1. 正規表現構文

Java の正規表現構文は、標準の正規表現構文と一致しています。一般的に使用される正規表現のメタ文字とその意味を次に示します。

  • d: 任意の数値と一致します。
  • D: 数値以外の文字と一致します。
  • w: 任意の文字、数字、またはアンダースコアと一致します。
  • W: 文字、数字、またはアンダースコア以外の文字と一致します。
  • s: スペース、タブ、改行などを含む任意の空白文字と一致します。
  • S: 空白以外の任意の文字と一致します。
  • : 単語の境界に一致します。
  • #^: 文字列の先頭と一致します。
  • $: 文字列の終了位置と一致します。
  • .: 任意の文字と一致します。
  • ##: 0 個以上の先行要素と一致します。
  • : 1 つ以上の先行要素と一致します。
  • ?: 0 個または 1 個前の要素と一致します。
  • {n}: 前の要素と正確に n 回一致します。
  • {n,}: 前の要素と少なくとも n 回一致します。
  • {n,m}: 前の要素と少なくとも n 回、最大で m 回一致します。
  • [...]: 角括弧内の任意の文字と一致します。
  • 1: 角括弧内の文字を除く任意の文字と一致します。
  • 特定のニーズに応じて柔軟に使用できるメタキャラクターや文法規則は他にもたくさんあります。

パターン クラス
  1. Java では、パターン クラスは正規表現のコンパイルされた表現です。 Pattern クラスが提供する静的メソッド
compile()

を使用して、正規表現文字列をコンパイルし、Pattern オブジェクトを生成できます。例: <pre class='brush:java;toolbar:false;'>String regex = &quot;\d+&quot;; Pattern pattern = Pattern.compile(regex);</pre>

Matcher クラス
  1. Matcher クラスは、すべての正規表現一致操作のエンジンです。 Pattern オブジェクトの
matcher()

メソッドを使用して Matcher オブジェクトを作成できます。

    matches()
  • メソッド: 正規表現が文字列全体と一致するかどうかをテストするために使用されます。例:
    String regex = "hello";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher("hello world");
    boolean matched = matcher.matches();
    System.out.println(matched); // 输出:true
    find()
  • メソッド: 正規表現に一致する文字列内のサブシーケンスを検索するために使用されます。例:
    String regex = "\d+";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher("abc123def");
    while (matcher.find()) {
        System.out.println(matcher.group());
    }
  • 上記のコードの出力結果は次のとおりです:
123

    replaceAll()
  • メソッド: 通常の文字列に一致する文字列を置換するために使用されます。表現部分。例:
    String regex = "\btom\b";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher("I love tom and tom loves me");
    String result = matcher.replaceAll("Jerry");
    System.out.println(result); // 输出:I love Jerry and Jerry loves me
具体的な例
  1. 正規表現を使用する一般的なシナリオと、対応するコード例をいくつか示します:

#携帯電話番号が合法かどうかを確認します:

    String regex = "^1[3-9]\d{9}$";
    Pattern pattern = Pattern.compile(regex);
    String phone = "13612345678";
    boolean isValid = pattern.matcher(phone).matches();
    System.out.println(isValid); // 输出:true
  • HTML テキスト内のリンクを抽出します:
    String regex = "<a\s.*?href="([^"]+)".*?>";
    Pattern pattern = Pattern.compile(regex);
    String html = "<a href="http://www.example.com">Example</a>";
    Matcher matcher = pattern.matcher(html);
    while (matcher.find()) {
        System.out.println(matcher.group(1));
    }
  • 上記のコードの出力結果は次のとおりです。
  • http://www.example.com

文字列を単語リストに分割します:

    String regex = "\b\w+\b";
    Pattern pattern = Pattern.compile(regex);
    String text = "Hello world, I love Java!";
    Matcher matcher = pattern.matcher(text);
    List<String> words = new ArrayList<>();
    while (matcher.find()) {
        words.add(matcher.group());
    }
    System.out.println(words);
  • 上記のコードの出力結果は次のとおりです:
  • [Hello, world, I, love, Java]
要約:

Thisこの記事では、Java 正規表現メソッドの使用法について詳しく説明しており、具体的なコード例が示されています。正規表現の構文と、Pattern クラスと Matcher クラスの使用法を学習することで、正規表現を柔軟に使用して文字列を処理できるようになります。この記事が Java 正規表現の理解と使用に役立つことを願っています。


...

以上が詳しい説明と使い方:Java正規表現解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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