Java の正規表現とは何ですか?
正規表現 または正規表現は、パターンを形成する一連の文字です。データを検索する場合、この特殊なパターンを使用して、一致する文字列を見つけることができます。単一文字のような単純なものもあれば、より複雑なパターンにすることもできます。Java には、パターンの検索と操作に正規表現を使用する機能を提供するクラスを含む Java regex パッケージがあります。このパッケージは、次の方法でコードにインポートされます。import java.util.regex.*;
Java 正規表現 - マッチャー
import java.util.regex.Matcher;
Java regex パッケージには 3 つのクラスがあります。
-
パターンクラス: 検索する必要があるパターンを定義します。
-
Matcherクラス: テキスト内のパターンを照合して検索します。
-
PatternSyntaxExceptionクラス: 正規表現内の構文エラーを示します。
Java Matcherクラスのメソッド
Java Matcherクラスのメソッドの一部を以下に説明します。-
booleanmatches() —正規表現がパターンに一致する場合にtrueを返します。
-
boolean find() — パターンに一致する次の正規表現を検索します。
-
boolean find(int start) — 指定された開始位置からパターンに一致する次の正規表現を検索します。
-
int start() — 一致の開始インデックスを返します。
-
int end() — 返された一致の終了インデックスを返します。
-
int groupCount() — 一致するグループの総数を返します。
-
String replaceAll(String replace) — 一致のすべてのサブシーケンスを指定された置換で置き換えます。
-
String replaceFirst(String replace) — 一致の最初のサブシーケンスを指定された置換で置き換えます。
Java マッチャーの例
Matcherクラスには便利なメソッドが多数ありますが、 matches()メソッドの具体的な例をさらに見ていきます。matches() メソッドの使用
以下に、matches()メソッドのJava Matcher の例を示します。import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
String regexPattern = "(.*)apple(.*)"; // this regex means that any char sequence can precede or succeed "apple"
String firstCheck = "Apples";
String secondCheck = "Apple";
String thirdCheck = "apple";
String fourthCheck = "An apple a day keeps the doctor away.";
String fifthCheck = "green apple, yellow apple, red apple, i love all kinds of apples.";
Pattern pattern = Pattern.compile(regexPattern);
Matcher matcher1 = pattern.matcher(firstCheck);
System.out.println("The Pattern is: " + pattern);
System.out.println("Text to check is: " + firstCheck);
System.out.println("Output for matches(): " + matcher1.matches() + "\n");
Matcher matcher2 = pattern.matcher(secondCheck);
System.out.println("The Pattern is: " + pattern);
System.out.println("Text to check is: " + secondCheck);
System.out.println("Output for matches(): " + matcher2.matches() + "\n");
Matcher matcher3 = pattern.matcher(thirdCheck);
System.out.println("The Pattern is: " + pattern);
System.out.println("Text to check is: " + thirdCheck);
System.out.println("Output for matches(): " + matcher3.matches() + "\n");
Matcher matcher4 = pattern.matcher(thirdCheck);
System.out.println("The Pattern is: " + pattern);
System.out.println("Text to check is: " + fourthCheck);
System.out.println("Output for matches(): " + matcher4.matches() + "\n");
Matcher matcher5 = pattern.matcher(fifthCheck);
System.out.println("The Pattern is: " + pattern);
System.out.println("Text to check is: " + fifthCheck);
System.out.println("Output for matches(): " + matcher5.matches() + "\n");
}
}
出力
パターンは次のとおりです: (.*)apple(.*) チェックするテキストは次のとおりです:matches() の Apple 出力: false パターンは次のとおりです: (.*)apple(.*) チェックするテキストは次のとおりです:matches() の Apple 出力: false パターン: (.*)apple(.*) チェックするテキスト: applematches() の出力: true パターン: (.*)apple(.*) チェックするテキスト: 1 日 1 個のリンゴ医者を遠ざけます。matches() の出力: true パターン: (.*)apple(.*) チェックするテキスト: 青リンゴ、黄リンゴ、赤リンゴ、私はあらゆる種類のリンゴが大好きです。matchs() の出力: true
GO TO FULL VERSION