Java正規表現の文字クラス完全ガイド|否定・範囲・集合演算の使い方を実例で解説
Javaの正規表現における文字クラスは、角括弧「[ ]」で定義される部分式です。指定された文字セットの中から1文字にマッチさせるために使われます。
例えば、正規表現「[abc]」は「a」「b」「c」のいずれか1文字にマッチし、「[a-z]」はaからzまでのアルファベット1文字にマッチします。
文字クラスの主なバリエーション
Javaの正規表現では、文字クラスを組み合わせることで柔軟なパターンマッチングが可能です。以下に代表的な5つのバリエーションを紹介します。
1. 否定(Negation)
キャレット「^」を角括弧内の先頭に置くと、指定した文字以外の1文字にマッチします。
例:「[^abc]」はa、b、c以外の任意の1文字にマッチします。同様に「[^a-z]」は小文字アルファベット以外の1文字にマッチします。
2. 範囲(Range)
ハイフン「-」を使うことで、連続する文字の範囲を指定できます。
例:「[a-z]」はa〜zの小文字1文字に、「[^A-Z]」は大文字アルファベット以外の1文字にマッチします。
3. 和集合(Union)
文字クラスの中に別の文字クラスや範囲をネストすると、いずれかのセットに含まれる文字にマッチします。
例:「[a-z[0-9]]」は、小文字アルファベット(a〜z)または数字(0〜9)のいずれか1文字にマッチします。
4. 積集合(Intersection)
「&&」演算子を使うと、複数の範囲に共通する文字だけにマッチさせることができます。
例:「[a-z&&[r-u]]」は、a〜zとr〜uの両方に含まれる文字、つまりr〜uの1文字にマッチします。
5. 差集合(Subtraction)
否定と積集合を組み合わせることで、ある範囲から特定の文字を除外した新しい範囲を作れます。
例:「[a-l&&[^e-h]]」は、a〜lの範囲からe〜hを引いた文字(a〜d、i〜l)にマッチします。
まとめ
文字クラスは、単純な文字指定から否定・範囲・集合演算まで、正規表現の中核となる機能です。これらのバリエーションを理解しておくと、入力値のバリデーションやテキスト処理など、実務でのパターンマッチングが格段に書きやすくなります。まずは基本的な「[ ]」の使い方に慣れ、必要に応じて否定や集合演算を組み合わせてみてください。
-
Javaの正規表現メタ文字「\s」の使い方を実例付きで解説
Javaの正規表現メタ文字「\s」とはJavaの正規表現において、メタ文字「\s」は空白文字(半角スペース・タブ・改行など)のいずれか1文字にマッチする特殊な記号です。文字列の中から空白を検索したり、数えたり、置き換えたりしたいときに活躍します。以下では、2つのサンプルコードを使って「\s」の具体的な使い方を解説します。サンプル1:空白文字の個数をカウントするまずは基本形です。PatternクラスとMatcherクラスを使って入力文字列を走査し、find()メソッドがマッチを見つけるたびにカウンターを1ずつ増やしています。import java.util.regex.Matcher; impo
-
Javaの正規表現における\wメタ文字の使い方を徹底解説
Javaの正規表現で使用されるサブ式(メタ文字)「\w」は、単語構成文字にマッチします。具体的には、半角英小文字(a〜z)、半角英大文字(A〜Z)、および半角数字(0〜9)が該当します。サンプルコード1:パターンにマッチした回数をカウントする次の例では、正規表現「\w to」を使い、入力文字列の中にこのパターンが何回出現するかをカウントして表示します。import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample { public static void main(St