ボム君.com

読者です 読者をやめる 読者になる 読者になる

ボム君.com

レビュー、IT系のネタ、ブログ術等を書いています。

検索・置換の効率化!僕がよく使う正規表現のパターン

プログラミング

SPONSORED LINK

f:id:powerbombkun:20160521201454p:plain

正規表現という言葉を知っていますか?

何となく聞いたことがあるけど知らないという方は是非とも覚えた方が良いです。検索や置換作業の効率ががぜんアップしますよ。
今回は正規表現での検索・置換で僕がよく使っているパターンを紹介したいと思います。

ちなみに今回の手順は僕がいつも使っている「秀丸」の画面で紹介します。
「秀丸」はこちらです。↓
秀まるおのホームページ(サイトー企画)−秀丸エディタ

正規表現のテクニック

行頭に「・」を挿入

正規表現で行頭は「^」と表します。
なので検索側には「^」を設定し、置換側は「・」を設定します。

置換画面
f:id:powerbombkun:20160521180638p:plain

これはリンゴです。
これはミカンです。
これはぶどうです。

これを置換するとこうなる。↓

・これはリンゴです。
・これはミカンです。
・これはぶどうです。

行末に「。」を追加

正規表現で行末は「$」と表します。
なので検索側には「$」を設定し、置換側は「。」を設定します。

置換画面
f:id:powerbombkun:20160521181623p:plain

これはリンゴです
これはミカンです
これはぶどうです

これを置換するとこうなる。↓

これはリンゴです。
これはミカンです。
これはぶどうです。

空行の削除

行頭の「^」に加えて「\n」を追加します。「\n」は改行にマッチします。
なので検索側には「^\n」を設定し、置換側は「」(何も無し)を設定します。

置換画面
f:id:powerbombkun:20160521183509p:plain

これはリンゴです。

これはミカンです。

これはぶどうです。

これを置換するとこうなる。↓

これはリンゴです。
これはミカンです。
これはぶどうです。

タブを空白に置換

タブは正規表現で「\t」になります。
なので検索側には「\t」を設定し、置換側は「 」(空白)を設定します。
※今回はタブを半角スペース1つ分に置換します。

置換画面
f:id:powerbombkun:20160521190113p:plain

これは	リンゴ	です。
これは		ミカン		です。

※1行目からタブ1個、2個です。
これを置換するとこうなる。↓

これは リンゴ です。
これは  ミカン  です。

数字を置換

数字は0~9まであります。これをまとめて扱うためには正規表現で「[0-9]」と書きます。
なので検索側には「[0-9]」を設定して置換します。
※ヒットするのは半角数字のみです。

置換画面
f:id:powerbombkun:20160521191652p:plain

うさぎは1着。
かめは2着。
パンダは3着。

これを置換するとこうなる。↓

うさぎは?着。
かめは?着。
パンダは?着。

英字を置換

英字は小文字のa~zと大文字のA-Zまであります。これをまとめて扱うためには正規表現で「[a-zA-Z]」と書きます。
なので検索側には「[a-zA-Z]」を設定して置換します。

置換画面
f:id:powerbombkun:20160521192515p:plain

私の名前はTaroです。
私の名前はHanakoです。
私の名前はYusukeです。

これを置換するとこうなる。↓

私の名前は????です。
私の名前は??????です。
私の名前は??????です。

英文字列を置換

↑では英語の文字1つ1つを変換しましたが、英文字列を1つとして扱うこともできます。
書き方は「[a-zA-Z]+」と書きます。「+」は直前の文字を1回以上繰り返しという意味になります。
なので、英字の1回以上の繰り返しの箇所にヒットします。

置換画面
f:id:powerbombkun:20160521193033p:plain

私の名前はTaroです。
私の名前はHanakoです。
私の名前はYusukeです。

これを置換するとこうなる。↓

私の名前は?です。
私の名前は?です。
私の名前は?です。

複数パターンをまとめて検索

複数パターンを扱う場合はOR「|」とパターン「()」文字を組み合わせて使用します。
下の置換画面のように検索対象の文字を複数していします。

置換画面
f:id:powerbombkun:20160521194749p:plain

この場合、火星と水星と木星にヒットします。
このヒット箇所を「?星」に置換しています。

私は火星が好きです。
私は水星が好きです。
私は木星が好きです。
私は金星が好きです。
私は土星が好きです。

これを置換するとこうなる。↓

私は?星が好きです。
私は?星が好きです。
私は?星が好きです。
私は金星が好きです。
私は土星が好きです。

あいまい検索&置換

検索して置換したいが検索文字の一部だけ忘れたという場合に使えます。
正規表現としては「.」を使います。「.」は任意の一文字にマッチします。

置換画面
f:id:powerbombkun:20160521193601p:plain

この場合だと、「Ha」と「ko」の間に任意の文字が2つある箇所にヒットします。

私の名前はTaroです。
私の名前はHanakoです。
私の名前はHamakoです。
私の名前はHajimeです。
私の名前はUmekoです。

これを置換するとこうなる。↓

私の名前はTaroです。
私の名前は?です。
私の名前は?です。
私の名前はHajimeです。
私の名前はUmekoです。

検索した文字を置換に使う

検索した文字をそのまま置換でも使いたいという場合がありますよね。
そういうことも正規表現では可能です。
検索時に「()」で囲うことで置換にヒットした文字を使用することができます。
ヒットした文字列は「\1」を指定することで使用することができます。
※複数の「()」を検索パターンに指定する場合は\2,\3と数字を指定することでどの「()」か選べます。

置換画面
f:id:powerbombkun:20160521200247p:plain

私は火星が好きです。
私は水星が好きです。
私は木星が好きです。
私は金星が好きです。
私は土星が好きです。

これを置換するとこうなる。↓

私は太陽系で火星が好きです。
私は太陽系で水星が好きです。
私は太陽系で木星が好きです。
私は金星が好きです。
私は土星が好きです。