ワイルドカードと正規表現の違いについてまとめました。
ワイルドカードと正規表現
「ワイルドカード」「正規表現」とは、両方とも「文字列の集合を一つの文字列で表現する方法」です。
複雑な文字列検索を効率的に行うことができます。
「ワイルドカード」「正規表現」を同じ物だと勘違いされるケースがありますが、実は別々の物となります。
違いは次の通りです。
種類 | 概要 |
---|---|
ワイルドカード | 「*」「?」の2種類の記号で、文字列の集合を表現 |
正規表現 | ワイルドカードの「*」「?」に加えて、さらに他の記号を使ってより文字列の集合を表現 |
一言でいうと、正規表現はワイルドカードの上位互換となります。
ワイルドカード
ワイルドカードでは、「*」「?」の2種類の記号で、文字列の集合を表現します。
パターン | 意味 | 記述例 | 該当例 |
---|---|---|---|
* | 任意の長さの文字 | わ* | 「わい」「わたし」「わかやま」など |
? | 任意の1文字 | わ? | 「わい」「わか」など |
【注意】「*」の後にある文字列
※UNIX系・・・条件として扱われる
※Windows系・・・条件として扱われない
正規表現
ワイルドカードの「*」「?」に加えて、さらに他の記号を使ってより複雑な条件を指定できます。
パターン式 | 内容 |
---|---|
[ ] | [ ] 内に指定した文字のどれかと一致 |
[^ ] | [ ] 内に指定した文字でない場合に一致する |
^ | 行頭と一致 |
$ | 行末と一致 |
. | 任意の1文字と一致 |
( ) | 正規表現をグループにまとめる |
| | 前後にある正規表現のいずれかと一致 |
+ | 直前の正規表現の1回以上の繰り返しに一致 |
? | 直前の正規表現に0回 or 1回一致 |
{m,n} | 直前の正規表現のm~n回の繰り返しに一致 |
+? | 直前の正規表現の1回以上の繰り返しに一致 |
*? | 直前の正規表現の0回以上の繰り返しに一致 |
?? | 直前の正規表現に0回もしくは1回一致 |
* | 直前の正規表現の0回以上の繰り返しに一致 |
{m,n}? | 直前の正規表現のm~n回の繰り返しに一致 |
\ | メタ文字を打ち消す |
\A | 文字列の先頭と一致 |
\b | 単語境界と一致 (\w と \W の間の空文字列と一致) |
\B | \B 以外と一致 |
\d | 数字と一致 ( [0-9] と同じ ) |
\D | \d以外と一致 |
\s | 空白文字と一致 |
\S | \s 以外と一致 |
\w | 英数字とアンダースコア_に一致 |
\W | \w 以外と一致 |
\Z | 文字列の末尾と一致 |
※参考:【正規表現とは】一覧表と例題
– | 関連ページ、その他 |
---|---|
関連 | ■【情報処理入門】基礎用語・原理・資格まとめ |
コメント