正規表現とワイルドカードは、どちらも特定の文字列にマッチさせるための表現ですが書き方が大きく異なります。自身がどちらを使うべきなのか混同しないためにも、本記事で確認島しましょう。
正規表現とは
正規表現とは、一般的に特定のルールにもとづいて記載された、複数の文字列へパターンマッチングさせるための書き方です。たとえば「[0-9]{3}」と記載すると「123」「456」のような3桁の数値にマッチするといった具合です。
プログラミング言語のほか、テキストエディタやGoogle スプレッドシートのような多くのツールで使用が可能です。検索以外に抽出や置換にも用いられるため、多くの文字列を取り扱う方であればひろく活用が見込めます。
正規表現の記号例
正規表現で使われる記号の一例は次のとおりです。
記号 | 意味 |
---|---|
.(ドット) | 任意の1文字 |
*(アスタリスク) | 直前の文字を0回以上繰り返す |
+(プラス) | 直前の文字を1回以上繰り返す |
?(クエスチョンマーク) | 直前の文字を0回または1回 |
正規表現では「特定の文字」を「◯回繰り返す」という書き方をするケースが多いのも特徴。たとえば「[a-z]+」とかくと「アルファベットの小文字」を「1回以上繰り返す」という意味になります。
ワイルドカードとは
ワイルドカードとは、任意の文字を表す記号を用いて複数パターンの文字列にヒットさせる表現方法のひとつです。たとえば「?ール」とかくと「ボール」「パール」「クール」などの文字列にヒットします。
ワイルドカードは、WindowsのコマンドプロンプトやMicrosoftのWord,Excelなどで使えます。またGoogle スプレッドシートでは関数としてなら使えます。
ワイルドカードの記号例
ワイルドカードで使われる記号の一例は次のとおりです。
記号 | 意味 |
---|---|
*(アスタリスク) | 任意の0文字以上 |
?(クエスチョンマーク) | 任意の1文字 |
#(シャープ) | 半角数字を1文字 |
~(チルダ) | 「*」と「?」のエスケープ |
ワイルドカードでは「*(アスタリスク)」と「?(クエスチョンマーク)」にて何かしらの文字列を穴埋めするように使うケースが多いでしょう。たとえば「*ボール*」として「モンスターボール」「ボールガイ」「マスターボール1こ」とするように、具体的な文字列の前後にくっつけて使う場面によく遭遇するはずです。
正規表現とワイルドカードの違い
正規表現とワイルドカードの違いは、使える環境や表現の仕方にあります。正規表現もワイルドカードも複数のパターンにマッチするようかける点は共通しています。
正規表現のほうがより厳密にかけるものの習得に時間がかかりがちです。対してワイルドカードは簡単に扱えるものの表せる範囲が限定的だといえます。基本的には使える環境がそれぞれ限られているので、ソフトウェアや言語によって指定された方で記述することとなります。
使用する環境
正規表現とワイルドカードを使える環境の例はそれぞれ次のとおりです。プログラミングではコマンドによってどちらを使うかが異なるケースも一部あるため、しっかり区別して用いましょう。
正規表現を使える環境
- コマンドライン(コマンドプロンプト、ターミナルなど)
- プログラミング言語(PerlやJavaScript、Pythonなど)
- Google ドキュメントやGoogle スプレッドシートなど
ワイルドカードを使える環境
- コマンドライン(コマンドプロンプト、ターミナルなど)
- Microsoftのソフト(WordやExcel、Accessなど)
- ExcelやGoogle スプレッドシートの関数
記号の意味合い
正規表現とワイルドカードでは使う記号が一部重複していますが、それぞれで表す意味が異なるため注意しましょう。*(アスタリスク)と?(クエスチョンマーク)はどちらにも頻出なので、意味も含め区別しましょう。
記号 | ワイルドカードでの意味 | 正規表現での意味 |
---|---|---|
*(アスタリスク) | 任意の0文字以上 | 直前の文字を0回以上繰り返す |
?(クエスチョンマーク) | 任意の1文字 | 直前の文字を0回または1回 |