メモ帳で正規表現置換を使いこなそう
テキストファイルを扱う際、同じ文字列を何度も置換する作業は本当に面倒ですよね。
そんなときに活躍するのが、メモ帳の「置換」機能です。
特に正規表現を使うことで、複雑な置換パターンにも対応できます。
今回は、メモ帳で一括置換する際に役立つ正規表現パターンを、実例とともにご紹介します。
メモ帳の置換機能とは
「検索する文字列」と「置換後の文字列」を入力して、「すべて置換」をクリックするだけです。
基本的な置換なら正規表現を使わなくても十分ですが、より複雑な置換をしたいときは正規表現が便利です。
正規表現を使うには、メモ帳の置換ダイアログで「正規表現」にチェックを入れる必要があります。
正規表現の基本パターン
正規表現を理解するには、まず基本的なパターンを知ることが大切です。
ここでは、メモ帳の置換で使える基本的な正規表現パターンをご紹介します。
任意の1文字にマッチする「.」
ドット「.」は、改行以外のあらゆる1文字にマッチします。
例えば、「a.c」と検索すると、「abc」「adc」「a1c」など、aとcの間に任意の1文字が入る文字列がすべてマッチします。
この正規表現パターンを使うことで、複数の類似パターンを一度に置換できます。
0回以上の繰り返し「*」
アスタリスク「*」は、直前の文字が0回以上繰り返される場合にマッチします。
例えば、「ab*c」と検索すると、「ac」「abc」「abbc」「abbbc」など、bが0個以上続く文字列がマッチします。
この置換パターンは、可変長の文字列を扱うときに非常に便利です。
1回以上の繰り返し「+」
プラス「+」は、直前の文字が1回以上繰り返される場合にマッチします。
「ab+c」と検索すると、「abc」「abbc」「abbbc」などがマッチしますが、「ac」はマッチしません。
置換作業で最低1文字は必要な場合に、この正規表現が活躍します。
0回または1回「?」
クエスチョンマーク「?」は、直前の文字が0回または1回だけ出現する場合にマッチします。
「ab?c」と検索すると、「ac」と「abc」がマッチします。
オプショナルな文字を扱う置換パターンとして使えます。
任意の1つを選ぶ「[ ]」
角括弧「[ ]」の中に複数の文字を入れると、そのうちの任意の1つにマッチします。
例えば、「[abc]」と検索すると、a、b、cのいずれかの1文字がマッチします。
「[0-9]」と書くと、0から9までの数字のいずれかにマッチします。
この正規表現パターンは、置換作業で非常によく使われます。
範囲指定「[a-z]」「[A-Z]」「[0-9]」
角括弧の中にハイフンを使うと、文字の範囲を指定できます。
「[a-z]」は小文字、「[A-Z]」は大文字、「[0-9]」は数字のいずれかにマッチします。
置換パターンとして、これらは基本中の基本です。
行の始まり「^」と行の終わり「$」
キャレット「^」は行の始まり、ドル記号「$」は行の終わりを表します。
例えば、「^abc」と検索すると、行の最初に「abc」がある行がマッチします。
「xyz$」と検索すると、行の最後に「xyz」がある行がマッチします。
この置換パターンは、特定の位置にある文字列を置換するときに便利です。
実践的な置換パターン一覧
ここからは、メモ帳で実際に使える置換パターンを、具体的な例とともにご紹介します。
これらの正規表現パターンを覚えれば、置換作業の効率が大幅に上がります。
パターン1:複数のスペースを1つに置換
「検索する文字列」に「 +」(スペース1つ+プラス)を入力します。
「置換後の文字列」に「 」(スペース1つ)を入力します。
この正規表現置換で、複数のスペースが1つにまとまります。
パターン2:行頭に特定の文字を追加
「検索する文字列」に「^」を入力します。
「置換後の文字列」に「・」を入力します。
この置換パターンを使うと、すべての行の最初に「・」を追加できます。
パターン3:HTMLタグを削除
「検索する文字列」に「<.*?>」を入力します。
「置換後の文字列」は空のままにします。
この正規表現パターンで、HTMLタグをすべて削除できます。
パターン4:電話番号をハイフン区切りに統一
「検索する文字列」に「([0-9]{3})([0-9]{4})([0-9]{4})」を入力します。
「置換後の文字列」に「$1-$2-$3」を入力します。
この置換パターンで、10桁の数字を「XXX-XXXX-XXXX」形式に変換できます。
パターン5:メールアドレスの形式チェック
「検索する文字列」に「^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$」を入力します。
この正規表現パターンで、正しいメールアドレス形式の行を検出できます。
パターン6:URLの抽出
「検索する文字列」に「https?://[a-zA-Z0-9./\-_?&=:%]*」を入力します。
この置換パターンで、URLをすべて検出できます。
パターン7:カンマ区切りの数字にする
「検索する文字列」に「([0-9]+)」を入力します。
「置換後の文字列」に置換関数を使って、カンマ区切りに変換できます。
この正規表現置換で、読みやすい数字表記になります。
パターン8:日付形式の変換
「検索する文字列」に「([0-9]{4})-([0-9]{2})-([0-9]{2})」を入力します。
「置換後の文字列」に「$3/$2/$1」を入力します。
この置換パターンで、YYYY-MM-DD形式をDD/MM/YYYY形式に変換できます。
パターン9:重複する行を削除
「検索する文字列」に「^(.*)$\n?(?=.*^\1$)」を入力します。
「置換後の文字列」は空のままにします。
この正規表現パターンで、重複する行をすべて削除できます。
パターン10:キャメルケースをスネークケースに変換
「検索する文字列」に「([a-z])([A-Z])」を入力します。
「置換後の文字列」に「$1_$2」を入力します。
この置換パターンで、camelCaseをcamel_caseに変換できます。
置換パターン一覧表
ここまでご紹介した置換パターンを、一覧表にまとめました。
| 置換内容 | 検索する文字列 | 置換後の文字列 |
|---|---|---|
| 複数スペースを1つに | + | |
| 行頭に文字追加 | ^ | ・ |
| HTMLタグ削除 | <.*?> | |
| 電話番号ハイフン化 | ([0-9]{3})([0-9]{4})([0-9]{4}) | $1-$2-$3 |
| 日付形式変換 | ([0-9]{4})-([0-9]{2})-([0-9]{2}) | $3/$2/$1 |
| キャメルケース→スネークケース | ([a-z])([A-Z]) | $1_$2 |
メモ帳の置換機能を使うときの注意点
正規表現を使った置換は非常に便利ですが、いくつか注意点があります。
置換作業を実行する前に、必ずバックアップを取ることをお勧めします。
置換前に必ずプレビューを確認する
「すべて置換」をクリックする前に、「次を検索」で置換対象を確認しましょう。
この置換パターンが想定通りに動作しているか、数行確認することが大切です。
複雑な正規表現は小分けにする
複雑な正規表現パターンを使う場合は、複数回に分けて置換することをお勧めします。
この方法なら、置換がうまくいかなかった場合も対応しやすいです。
特殊文字のエスケープ
正規表現で特殊な意味を持つ文字(.、*、+など)を文字として扱いたい場合は、バックスラッシュでエスケープします。
例えば、ドットを文字として検索したい場合は「\.」と入力します。
まとめ
メモ帳の置換機能と正規表現を組み合わせることで、複雑なテキスト処理が簡単にできます。
今回ご紹介した置換パターンは、実務でよく使われるものばかりです。
これらの正規表現パターンを覚えれば、置換作業の効率が飛躍的に向上します。
メモ帳で置換作業を行う際は、ぜひこの記事を参考にしてみてください。
正規表現を使いこなすことで、面倒なテキスト処理も素早く完了できるようになります。
