Javaの正規表現で大文字・小文字を区別せずに特定の文字にマッチさせる方法
Javaのjava.util.regexパッケージには、文字シーケンスの中から特定のパターンを見つけ出すためのさまざまなクラスが用意されています。中でもPatternクラスは、正規表現をコンパイルした結果を保持するクラスであり、文字列検索の中心的な役割を担います。
大文字・小文字を無視してマッチさせる手順
入力文字列から、大文字・小文字を区別せずに特定の文字へマッチさせるには、以下の手順に従います。
入力文字列を取得する。
compile()メソッドで正規表現をコンパイルする。Patternクラスのcompile()メソッドは、正規表現を表す文字列とフラグを表す整数値を受け取り、Patternオブジェクトを返します。ここでは次の2つを指定します。
マッチさせたい文字を含む文字クラス「[ ]」。例:「[t]」
大文字・小文字の違いを無視するためのCASE_INSENSITIVEフラグ
matcher()メソッドでMatcherオブジェクトを取得する。Patternクラスのmatcher()メソッドは入力文字列を受け取り、その文字列に対するMatcherオブジェクトを返します。
find()メソッドでマッチ箇所を検索する。Matcherクラスのfind()メソッドを呼び出すたびに、次のマッチ位置へ進みながら一致する部分を順番に見つけていきます。
サンプルコード
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CompileExample {
public static void main(String args[]) {
// 文字列の読み込み
Scanner sc = new Scanner(System.in);
System.out.println("Enter input string");
String input = sc.nextLine();
// 特定の文字にマッチさせる正規表現
String regex = "[t]";
// 大文字・小文字を無視して正規表現をコンパイル
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
// Matcherオブジェクトの取得
Matcher matcher = pattern.matcher(input);
int count = 0;
while(matcher.find()) {
count++;
}
System.out.println("Number of matches: " + count);
}
}
実行結果
Enter input string Tutorialspoint Number of matches: 3
この例では、入力された文字列「Tutorialspoint」から、大文字・小文字を問わず文字「t」に一致する箇所を数えています。CASE_INSENSITIVEフラグを指定しているため、大文字の「T」も小文字の「t」も同じ文字として扱われ、その結果、合計3件のマッチが検出されます。フラグを指定しない場合は大文字と小文字が厳密に区別されるため、マッチ数が変わる点に注意してください。
-
Javaの正規表現でMM/DD/YYYY形式の日付を検証する方法
Java の java.util.regex パッケージには、文字シーケンスの中から特定のパターンを見つけ出すためのさまざまなクラスが用意されています。 このパッケージの中心となる Pattern クラスは、正規表現をコンパイルした結果を表すクラスです。文字列と正規表現のマッチングを行う際には、主に次の2つのメソッドを使用します。 compile() — 正規表現を表す文字列を受け取り、コンパイル済みの Pattern オブジェクトを返します。 matcher() — 検証対象の文字列を受け取り、現在の Pattern オブジェクトが表すパターンと照合するための Matcher オブジェクト
-
Javaの正規表現を使って文字列からHTMLタグを抽出する方法
Javaのjava.util.regexパッケージには、文字シーケンスの中から特定のパターンを検索するためのさまざまなクラスが用意されています。 このパッケージのPatternクラスは、正規表現をコンパイルした結果を表すクラスです。文字列と正規表現のマッチングを行うために、次の2つのメソッドが提供されています。 compile() − 正規表現を表す文字列を引数として受け取り、Patternクラスのオブジェクトを返します。 matcher() − 対象となる文字列を受け取り、その文字列を現在のPatternオブジェクトが表すパターンと照合するためのMatcherオブジェクトを生成します。