検索と置換で使う正規表現:7つのレシピで学ぶやさしいガイド
正規表現(regex)とは、少数の記号で書かれたパターンのことです。検索と置換ツールで「正規表現」をオンにすると、検索欄は通常の文字列ではなくパターンとして読み取られます。そのため、ピリオド(.)はピリオドそのものではなく、任意の1文字を表します。役立つパターンの多くは、数個の記号だけで書けます。普通の単語を検索するときは、正規表現をオフに戻してください。オフの場合、すべての記号はそのままの文字として扱われます。
検索と置換単語をまとめて置き換えたい無料で使う必要な記号
| 記号 | 一致する対象 |
|---|---|
| . | 改行を除く任意の1文字 |
| * | 直前の要素の0回以上の繰り返し |
| + | 直前の要素の1回以上の繰り返し |
| ? | 直前の要素が1回あるか、まったくない |
| [ ] | リストから選んだ1文字(例:[aeiou] や [0-9]) |
| \d \w \s | 数字/英字・数字・アンダースコア/空白・タブ・改行 |
| ( ) | グループ。置換欄では $1、$2 などとして再利用できます |
| ^ と $ | 文章全体の先頭と末尾 |
大文字にすると、クラスの意味が逆になります。\D は数字以外の任意の文字、\S は空白以外の任意の文字です。
このツールには2つの注意点があります。1つ目は、\w が一致するのは英字、数字、アンダースコアだけという点です。アクセント付きの文字には、どの文字体系の文字にも一致する \p{L} を使ってください。2つ目は、^ と $ が一致するのは行ごとではなく、文章全体の先頭と末尾だという点です。下のレシピでは、代わりにパターン内で改行を使っています。
グループと $1
パターンの一部を丸かっこで囲むと、ツールはその部分が一致した内容を覚えておきます。置換欄では、$1 が1つ目のグループ、$2 が2つ目のグループ、$& が一致した部分全体を表します。ツールのFAQには定番の例があります。検索欄を (\w+)@(\w+)、置換欄を $2 at $1 にすると、name@site は site at name になります。グループが使えるのは正規表現がオンのときだけです。オフの場合、$1 はそのままの文字として入力されます。
段階的にパターンを作る
まずは探したい文字列をそのまま書き、変化する部分だけを記号に置き換えます。たとえば 2026-11-04 のような日付は \d{4}-\d{2}-\d{2} と書けます。{4} は直前の要素がちょうど4回という意味です。まずは単純なパターンでテストし、ハイライトで一致しすぎていることがわかったときにだけ絞り込んでください。
置換を行わずにパターンの動作だけを確かめたい場合は、正規表現テスターでサンプルテキストに対して実行し、一致した箇所を一覧で確認できます。
7つのレシピ
各レシピでは正規表現をオンにしてください。ツールは一致箇所をハイライトし、コピーする前に件数を表示します。そのため、まずはテキストのコピーで各レシピを試してください。
- 名字と名前を入れ替える。 検索欄に
(\w+) (\w+)、置換欄に$2, $1と入力します。"Ada Lovelace" は "Lovelace, Ada" になります。アクセント付きの名前には(\p{L}+) (\p{L}+)を使ってください。このパターンが扱えるのは2語の名前だけです。 - 行末の空白を削除する。 検索欄に
[ \t]+(?=\r?\n|$)を入力し、置換欄は空のままにします。これは、改行の直前または文章の末尾にあるスペースやタブに一致します。先読みの(?=...)は、改行を削除せずに位置を確認するためのもので、\r?はWindowsの改行コードにも対応します。貼り付けテキストを整えるにある「各行をトリム」オプションでも同じ処理ができます。 - 連続する空白をまとめる。 検索欄に
{2,}(空白が2回以上続く部分)と入力し、置換欄には空白1つを入力します。2個以上の空白が1個になります。インデントも詰まるため、コードには使わないでください。 - 各行の先頭に接頭辞を付ける。 検索欄に
(.+)、置換欄に- $1と入力します。改行で区切られた1文字以上の並びがそれぞれ1行となり、その内容が $1 に入ります。空行はスキップされます。1回以上の形(.+)を使い、0回以上の形は使わないでください。0回以上の形は改行の間の空の位置にも一致するため、空行にも余分なハイフンが付いてしまいます。 - 空行を削除する。 検索欄に
\n\s*(?=\n)を入力し、置換欄は空のままにします。一致するのは、改行とその後に続く空白類で、次の改行の直前までの部分です。次の改行は残されます。これにより、空白だけを含む行も含めて空行が削除されます。\sは復帰文字(キャリッジリターン)にも一致するため、Windowsの改行コードにも対応します。テキストの一番上にある空行は残ります。重複行を削除ツールには「空行を削除」オプションがあり、チェックを1つ入れるだけで同じ処理ができます。 - 1行に1項目ずつ並べる。 検索欄に
,[ ]*を入力し、置換欄に\nを入力して、「置換で \n と \t を読み取る」にチェックを入れます。"apples, pears, plums" は3行になります。チェックを入れないと、\n はバックスラッシュとnの2文字のまま残ります。 - 数字をそれぞれ角かっこで囲む。 検索欄に
\d+、置換欄に[$&]と入力します。"Order 42 and 7" は "Order [42] and [7]" になります。$& は一致した部分全体なので、グループは必要ありません。
コピーする前に確認すること
- 一致件数とハイライトで、パターンが何を捉えたかを確認できます。ハイライトが間違っていれば、結果も間違います。
- パターンに誤りがあると、入力欄の下に「有効なパターンではありません」と表示されます。パターンを修正すると、結果が自動で更新されます。
- 置換欄を空のままにすると、一致した箇所がすべて削除されます。欄のプレースホルダーにもその旨が書かれています。
- 「大文字と小文字を区別」は初期状態ではオフなので、レシピは大文字と小文字を区別せずに一致します。大小の違いが重要な場合はオンにしてください。
- 正規表現がオンの状態で、ピリオドや角かっこそのものを検索するには、前にバックスラッシュを付けます:\. または \[
注意が必要なケース
- 貪欲マッチ。
.+はできるだけ長く一致します。最初の一致で止めるには、疑問符を付けて.+?とします。これは<b>.+</b>のような文字列で重要で、複数のタグにまたがって一致してしまうことがあります。 - 単語単位。 通常の単語を扱う場合は、正規表現をオフにするほうが安全です。ツールのFAQにあるとおり、「単語単位で一致」を使うと、category の中にある cat には一致しなくなります。単語単位の変更の例は、検索と置換ガイドにもさらに載っています。
- 元のテキストは残ります。 結果は別の欄に表示され、入力したテキストはそのまま残ります。問題がなければ、結果をコピーしてください。
英語原文をもとに、AIの支援を受けて翻訳しています。
コメント
まだコメントはありません。最初のコメントを書いてみましょう。


