約4分で読めます
正規表現の基本と使い方|初心者向けパターンマッチング入門
正規表現とは
正規表現(Regular Expression、略してRegex)は、文字列のパターンを記述するための特殊な記法です。「特定のパターンに一致する文字列を検索・置換・検証する」ために使います。
プログラミングやデータ処理に携わる人にとっては必須のスキルですが、一見すると暗号のように見えるため、挫折する人も多いのが実情です。この記事では、基本的なパターンから実用例まで段階的に解説します。
基本のメタ文字一覧
正規表現で特別な意味を持つ文字(メタ文字)を覚えましょう。
| メタ文字 | 意味 | 例 |
|---|---|---|
. |
任意の1文字 | a.c → abc, aXc |
* |
直前の文字が0回以上 | ab*c → ac, abc, abbc |
+ |
直前の文字が1回以上 | ab+c → abc, abbc |
? |
直前の文字が0回か1回 | colou?r → color, colour |
^ |
行の先頭 | ^Hello → 行頭のHello |
$ |
行の末尾 | end$ → 行末のend |
[] |
文字クラス | [aeiou] → 母音1文字 |
\d |
数字(0-9) | \d{3} → 3桁の数字 |
\w |
英数字とアンダースコア | \w+ → 単語 |
\s |
空白文字 | \s+ → 1つ以上の空白 |
実用パターン例
メールアドレスの検証
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
@ の前に英数字と一部の記号が1文字以上、@ の後にドメイン名が続くパターンです。
日本の電話番号
0\d{1,4}-\d{1,4}-\d{4}
「0」で始まり、ハイフン区切りの数字が続くパターンです。固定電話・携帯電話の両方に対応します。
郵便番号
\d{3}-\d{4}
「123-4567」形式の7桁郵便番号にマッチします。
正規表現を効率的に学ぶコツ
1. リアルタイムでテストしながら学ぶ
正規表現は頭で考えるだけでなく、実際にパターンを入力してマッチ結果を確認しながら学ぶのが最も効率的です。正規表現テスターでは、パターンとテスト文字列を入力すると、マッチ箇所がリアルタイムでハイライト表示されます。
2. シンプルなパターンから組み立てる
複雑なパターンを一度に書こうとせず、まず基本パターンを書いて動作を確認し、少しずつ条件を追加していく方法がおすすめです。
3. よく使うパターンはチートシートとして保存
メールアドレス、URL、電話番号など頻出パターンは手元に控えておきましょう。毎回ゼロから書く必要はありません。
プログラミング言語での使い方
正規表現はほぼすべてのプログラミング言語でサポートされています。
- JavaScript —
/pattern/.test(string)やstring.match(/pattern/) - Python —
re.search(r'pattern', string) - PHP —
preg_match('/pattern/', $string)
言語ごとの細かな差異はありますが、基本のメタ文字は共通です。まずは正規表現テスターでパターンを検証してから、コードに組み込むと安全です。
まとめ
- 正規表現は文字列パターンを記述する強力な記法
.(任意の文字)、*(0回以上)、+(1回以上)、\d(数字)が基本- 正規表現テスターでリアルタイムに検証しながら学ぶのが最速の上達法