正規表現とは
正規表現は、文字列のルールを記号で表す方法です。
例えば、数字だけを探したい場合や、メールアドレスのような形を探したい場合に使われます。プログラミング、テキスト編集、ログ確認、データ整理などでよく使われます。
普通の検索との違い
普通の検索では、入力した文字そのものを探します。
正規表現では、「数字が1個以上続く」「英字で始まる」「特定の記号までを取り出す」のように、文字のパターンを指定できます。
| 目的 | 普通の検索 | 正規表現 |
|---|---|---|
| 固定の文字を探す | 東京 | 東京 |
| 数字を探す | 0から9を個別に探す | \d |
| 数字の連続を探す | 手作業で確認 | \d+ |
| 行頭を探す | 難しい | ^ |
よく使う基本記号
| 記号 | 意味 | 例 |
|---|---|---|
| . | 任意の1文字 | a.c |
| \d | 数字 | \d+ |
| \w | 英数字とアンダースコア | \w+ |
| + | 1回以上の繰り返し | \d+ |
| * | 0回以上の繰り返し | a* |
| ? | 0回または1回 | https? |
| ^ | 行の先頭 | ^TODO |
| $ | 行の末尾 | .com$ |
よくある例
\d+\d{3}-?\d{4}^[A-Za-z0-9]+$^TODOフラグとは
正規表現では、検索方法を変えるためにフラグを指定することがあります。
例えば g は全体検索、i は大文字小文字を区別しない検索、m は複数行での行頭・行末判定に使われます。
| フラグ | 意味 |
|---|---|
| g | 一致する箇所をすべて探す |
| i | 大文字と小文字を区別しない |
| m | 複数行として扱う |
検索と置換で使う
正規表現は、文字を探すだけでなく、まとめて置換するときにも使われます。
例えば、複数の空白を1つの空白にまとめたり、特定の形式の文字列だけを削除したりできます。
\s+
↓
複数の空白や改行を探す使うときの注意点
正規表現は便利ですが、意図しない文字列まで一致することがあります。
- 本番データに使う前にテストする
- 一致する範囲が広すぎないか確認する
- 記号を文字そのものとして使う場合はエスケープする
- 複雑にしすぎず、必要な条件だけを書く
- 大量の文字列では処理が重くなる場合がある
正規表現を試す方法
正規表現は、実際の文字列に対して試しながら調整すると理解しやすくなります。
当サイトの正規表現テスターでは、パターンとテスト文字列を入力して、一致箇所や置換結果を確認できます。
まとめ
正規表現は、文字列のパターンを指定して検索・抽出・置換するための書き方です。
最初は難しく見えますが、数字、英字、行頭、繰り返しなどの基本記号から覚えると使いやすくなります。実際に試しながら確認することが大切です。