コンテンツへスキップ
uencoder

正規表現の文字クラスを効果的に使う

文字クラス [...] は、集合の中の任意の 1 文字にマッチします。範囲、否定、省略記法クラス、エスケープ規則を学びましょう。

  1. 1

    文字クラス [abc] は a、b、c のいずれかにマッチします。範囲指定の [a-z] は任意の小文字にマッチします。否定の [^0-9] は数字以外の任意の文字にマッチします。短縮表現には \d (数字)、\w (単語構成文字)、\s (空白) と、それぞれの大文字による否定形 \D、\W、\S があります。[] の内側では、ほとんどの特殊文字は特別な意味を失い、エスケープが必要なのは ^、-、]、\ だけです。

  2. 2
    正規表現テスター →

    サンプルテキストに対して文字クラスのパターンをテストします。英字には [a-zA-Z]、16 進数字には [0-9a-fA-F]、空白以外には [^\s] を試してください。ツールはすべてのマッチを表示するため、パターンが意図どおりにマッチしているかを確認できます。

  3. 3
    正規表現置換ツール →

    置換でも文字クラスを使えます。[0-9] を * に置き換えて数字をマスクしたり、[aeiou] を _ に置き換えて母音を取り除いたりします。置換文字列内の文字クラスはリテラルとして扱われるため、エスケープは不要です。

よくある質問

\d と [0-9] の違いは何ですか?
ほとんどの正規表現フレーバーでは同一です。ただし、Unicode 対応の一部のフレーバー (Java、RegexOptions を指定した .NET) では、\d はすべての Unicode 数字文字 (例:アラビア・インド数字 ٠-٩) にマッチし、[0-9] は ASCII 数字のみにマッチします。ASCII のみにマッチさせたい場合は [0-9] を使ってください。
[] の内側で特殊文字をエスケープする必要はありますか?
ほとんどの特殊文字 (. * + ? { } ( ) |) は文字クラス内ではリテラルであり、エスケープ不要です。特別な扱いが必要なのは、^ (先頭に置くと否定になる)、- (範囲指定に使う。エスケープするか先頭/末尾に置く)、] (含めるにはエスケープするか先頭に置く)、\ (エスケープ用) だけです。

このタスクを解決するワークフロー

関連ツール