正規表現(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 |
$ | 行の末尾 | world$ |
[] | 文字クラス(いずれか1文字) | [aeiou] → 母音 |
\d | 数字(0-9) | \d{3} → 3桁の数字 |
\w | 英数字とアンダースコア | \w+ → 単語 |
\s | 空白文字 | \s+ → 空白 |
グループとキャプチャ
丸括弧()でグループ化し、マッチした部分を取り出せます。
const datePattern = /(\d{4})-(\d{2})-(\d{2})/;
const match = '2026-04-16'.match(datePattern);
// match[1] = '2026', match[2] = '04', match[3] = '16'
実践的な使用例
メールアドレスの簡易チェック
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
emailPattern.test('[email protected]'); // true
電話番号の抽出
const phonePattern = /0\d{1,4}-\d{1,4}-\d{4}/g;
const text = 'TEL: 03-1234-5678 または 090-1234-5678';
text.match(phonePattern); // ['03-1234-5678', '090-1234-5678']
HTMLタグの除去
const html = '<p>Hello <strong>World</strong></p>';
const text = html.replace(/<[^>]+>/g, '');
// 'Hello World'
便利な学習・テストツール
- regex101.com — 正規表現をリアルタイムでテストでき、各部分の説明も表示される
コーディングテスト対策も参考にしてください。
- RegExr — ビジュアルに正規表現を学べるオンラインツール
- Regexone — インタラクティブなレッスンで正規表現を学習
学習のコツ
正規表現を一度にすべて覚えようとする必要はありません。よく使うパターンから覚え、新しいパターンが必要になったら都度調べるのが実践的です。
プログラミング言語ランキングも参考にしてください。
関連記事:JavaScript入門やPython入門で、各言語での正規表現の使い方も学べます。
まとめ
正規表現はプログラミングの多くの場面で活用できる便利なスキルです。Linux基本コマンドのgrepコマンドなどとも組み合わせて、テキスト処理のスキルを高めていきましょう。