正規表現とは、文字の並び方を指定して、目的の文字を探すための書き方です。
かんたんに言うと、文字を探すときに使う「条件」です。数字だけを探したり、特定の言葉で始まる行を探したりできます。
正規表現は、文字の検索や置換、入力された内容の形式確認などに使われます。この記事では、基本的な意味と書き方を初心者向けに解説します。
関連するIT用語・ビジネス用語をまとめて確認したい方は、IT用語・ビジネス用語一覧もあわせてご覧ください。
正規表現とは?文字の並び方を表すルール
正規表現は「せいきひょうげん」と読みます。英語では「Regular Expression」といい、「Regex」と短く表すこともあります。
正規表現では、普通の文字と特別な意味を持つ記号を組み合わせます。それにより、文字の内容ではなく、文字の並び方を指定できます。
例えば、名簿の中から「田中さん」を探す場合は、通常の検索で「田中」と入力すれば見つかります。
一方、「3桁の商品番号をすべて探したい」という場合は、番号そのものが分かりません。このようなときに正規表現が役立ちます。
正規表現を身近な例で考えてみよう
正規表現は、条件を書いた型紙のようなものです。
「英字1文字の後ろに、3桁の数字が続く」という型紙を作ると、「A123」や「B456」などをまとめて探せます。
IT用語としての正規表現も、文字の並び方を条件として表します。その条件に当てはまる文字を、文章やデータの中から探し出します。
正規表現でできること
正規表現の主な使い方は、検索、取り出し、置換、形式の確認です。
決まった形の文字を検索する
正規表現を使うと、同じ形をした文字をまとめて検索できます。
- 3桁の数字を探す
- 「東京」で始まる行を探す
- 「.txt」で終わるファイル名を探す
- 英字と数字が組み合わされた商品番号を探す
必要な部分だけを取り出す
長い文章やデータから、条件に合う部分だけを取り出せます。この処理は「抽出」と呼ばれることもあります。
例えば、商品の一覧から「A-001」のような商品番号だけを取り出せます。
文字をまとめて置き換える
正規表現は、検索した文字を別の文字に置き換えるときにも使われます。
連続した空白を1つにしたり、行の先頭に同じ文字を追加したりできます。
入力された文字の形を確認する
文字が決められた形になっているかを確認する用途にも使われます。
ただし、正規表現で確認できるのは、主に文字の形です。内容そのものが正しいかどうかまでは判断できません。
正規表現の仕組み
正規表現では、探したい文字の条件を「パターン」として書きます。文章やデータの中でパターンに当てはまることを「一致する」または「マッチする」といいます。
次の商品番号を例に見てみましょう。
商品A-123
商品B-45
商品C-789
「商品」に続いて英大文字が1文字、ハイフンの後ろに数字が3文字あるものを探す場合は、次のように書けます。
商品[A-Z]-[0-9]{3}
この正規表現では、「商品A-123」と「商品C-789」が見つかります。「商品B-45」は数字が2文字しかないため、条件には当てはまりません。
よく使う正規表現の記号一覧
正規表現で特別な意味を持つ記号を「メタ文字」といいます。最初からすべて覚える必要はありません。
まずは、よく使う記号の意味を確認しましょう。
| 記号 | 意味 | 使用例 |
|---|---|---|
. | 任意の1文字 | あ.は「あ」の後ろに1文字ある部分 |
[abc] | a、b、cのいずれか1文字 | [赤青白]は「赤」「青」「白」のいずれか |
[0-9] | 0から9までの数字1文字 | [0-9]{3}は3桁の数字 |
[A-Z] | AからZまでの英大文字1文字 | [A-Z][0-9]は英大文字と数字の組み合わせ |
[^abc] | a、b、c以外の1文字 | [^0-9]は数字以外の1文字 |
* | 直前の文字が0回以上続く | あ*は「あ」がない場合も含む |
+ | 直前の文字が1回以上続く | [0-9]+は1文字以上の数字 |
? | 直前の文字が0回または1回ある | ファイル?では「ル」が省略できる |
{3} | 直前の文字がちょうど3回続く | [0-9]{3}は3桁の数字 |
{2,4} | 直前の文字が2回以上4回以下続く | [0-9]{2,4}は2桁から4桁の数字 |
^ | 文字列の先頭 | ^東京は「東京」で始まる文字列 |
$ | 文字列の末尾 | 終了$は「終了」で終わる文字列 |
| | 左右のどちらか | 赤|青は「赤」または「青」 |
() | 複数の文字をひとまとまりにする | (東京|大阪)駅は「東京駅」または「大阪駅」 |
\ | 記号の特別な意味を外すときなどに使う | \.は普通のピリオド |
同じ記号でも、書く場所によって意味が変わることがあります。例えば、^は先頭を表しますが、[^0-9]では数字以外という意味になります。
正規表現の具体例
ここからは、よく使われる簡単な正規表現を紹介します。
数字だけでできた文字列を探す
^[0-9]+$
この正規表現は、最初から最後まで数字だけでできた文字列を表します。「12345」には一致しますが、「123A」には一致しません。
4桁の数字を探す
^[0-9]{4}$
この正規表現は、数字がちょうど4文字あることを表します。「2026」には一致しますが、「123」や「12345」には一致しません。
特定の言葉で始まる文字列を探す
^東京
この正規表現は、「東京」で始まる文字列を探します。「東京都」や「東京駅」には一致します。
「今日は東京へ行く」のように、途中に東京がある文字列には一致しません。
特定の文字で終わるファイル名を探す
\.txt$
この正規表現は、「.txt」で終わる文字列を探します。「memo.txt」や「data.txt」に一致します。
ピリオドには「任意の1文字」という特別な意味があります。そのため、普通のピリオドとして探すときは、前に\を付けます。
二つの言葉のどちらかを探す
パソコン|スマートフォン
この正規表現は、「パソコン」または「スマートフォン」を探します。縦線の|が「または」を表します。
日付のような形を探す
^[0-9]{4}-[0-9]{2}-[0-9]{2}$
この正規表現は、「2026-08-30」のような形に一致します。
ただし、「2026-99-99」のような存在しない日付にも一致します。この例で確認できるのは、数字の並び方だけです。
正規表現が使われる場面
正規表現は、プログラミングだけで使われるものではありません。文字を扱うさまざまな作業で利用されています。
- 文章編集ソフトで文字をまとめて検索する
- 複数の文章を同じ形に整える
- 大量のデータから商品番号を取り出す
- プログラムで文字の形を確認する
- システムの記録から特定の行を探す
- ファイル名や文字列を決まった条件で分ける
正規表現に対応しているソフトでは、検索画面に「正規表現」などの項目が用意されていることがあります。その項目を有効にしてから使います。
正規表現とワイルドカードの違い
ワイルドカードとは、ファイル検索などで複数の文字をまとめて指定するための記号です。正規表現と似ていますが、記号の意味や書き方が異なります。
| 比較する点 | 正規表現 | ワイルドカード |
|---|---|---|
| 主な目的 | 細かな条件で文字を検索する | 主にファイル名などを簡単に検索する |
| 使える条件 | 文字数、先頭、末尾、繰り返しなど | 任意の文字や文字列など |
*の一般的な意味 | 直前の文字が0回以上続く | 任意の文字列 |
| 任意の文字列を表す例 | .* | * |
| 書き方 | 記号の組み合わせが多い | 比較的簡単 |
例えば、「資料」で始まるファイルをワイルドカードで探す場合は、資料*と書くことがあります。
正規表現では、資料.*と書くのが基本です。ただし、使用するソフトによって書き方が異なる場合があります。
正規表現の書き方を考える手順
正規表現は、最初から複雑な記号を組み合わせる必要はありません。探したい条件を小さく分けると考えやすくなります。
- 探したい文字の形を言葉で書く
- 一致させたい例を用意する
- 一致させたくない例も用意する
- 必要な記号を一つずつ組み合わせる
- 想定した結果になるか確認する
例えば「英大文字1文字、ハイフン、3桁の数字」と言葉で整理します。その後、[A-Z]-[0-9]{3}のように置き換えます。
初心者が間違えやすい点
ピリオドを普通の文字として使ってしまう
正規表現の.は、基本的に任意の1文字を表します。普通のピリオドを探す場合は、\.と書きます。
このように、記号の特別な意味を外すことを「エスケープ」といいます。
アスタリスクだけで任意の文字列を表そうとする
正規表現の*は、直前にある文字の繰り返しを表します。*だけで任意の文字列を表すわけではありません。
任意の文字列を表すときは、一般に.*を使います。
一部分の一致と全体の一致を混同する
[0-9]+は、文字列の一部に数字があれば一致します。そのため、「商品123」にも一致します。
数字だけでできた文字列を探す場合は、先頭の^と末尾の$を付けて、^[0-9]+$とします。
全角文字と半角文字を同じものと考える
半角の「1」と全角の「1」は別の文字です。半角数字を表す[0-9]では、全角数字が見つからない場合があります。
空白にも、半角空白と全角空白があります。探したい文字の種類を先に確認しましょう。
どのソフトでも同じ結果になると考える
正規表現の基本的な考え方は共通しています。ただし、使える記号や細かな動きは、ソフトやプログラミング言語によって異なります。
実際に使う前に、そのソフトが正規表現に対応しているか確認してください。
正規表現についてよくある質問
正規表現は初心者でも使えますか?
基本的な記号から始めれば、初心者でも使えます。まずは[0-9]、+、^、$などから覚えるとよいでしょう。
正規表現の記号をすべて覚える必要はありますか?
すべて覚える必要はありません。必要なときに一覧を確認しながら使えます。
よく使う記号は、実際に検索や置換を試すうちに自然と覚えられます。
正規表現はどこに入力しますか?
正規表現に対応したソフトの検索欄や置換欄に入力します。ソフトによっては、先に「正規表現を使う」という設定を有効にします。
正規表現チェッカーとは何ですか?
入力した正規表現が、どの文字に一致するかを確認できるツールです。実際のデータを変更せずに書き方を試せます。
確認するときは、実在する個人情報ではなく、練習用の文字を使うとよいでしょう。
正規表現では改行も検索できますか?
対応している環境であれば検索できます。ただし、改行を表す書き方や、ピリオドが改行に一致するかどうかは環境によって異なります。
正規表現とプログラミングは同じものですか?
同じものではありません。正規表現は、文字の並び方を表すための書き方です。
プログラミングの中でも使われますが、文章編集ソフトなどで使うこともできます。
まとめ:正規表現とは文字の並び方を指定するルール
正規表現とは、文字の並び方を条件として表し、目的の文字を検索するための書き方です。検索だけでなく、取り出し、置換、形式の確認にも使われます。
最初から多くの記号を覚える必要はありません。数字、先頭、末尾、繰り返しなど、必要な書き方から少しずつ使ってみましょう。
正規表現を使うときは、ソフトやプログラミング言語による違いにも注意します。一致させたい例と一致させたくない例を用意して確認することが大切です。
