
例えば、下記のようなコードで、
省略された小数点3桁目が「0」の場合にその「0」を追加したいと思った場合。

何万字の中から一つ一つ見つけ出して置換していくのは大変。
そんなときは正規表現を使ってサクッと置換する。
正規表現で検索
「Ctrl + F」で検索窓を出す。
検索窓の右側に正規表現のボタンがある。

ちなみに左から、
- 大文字と小文字を区別
- 単語単位で検索
- 正規表現を使用
のボタンになっている。
その隣にあるハンバーガーメニューは、「選択テキスト内で検索」の機能。
今回は、
</td>
の前の数字から小数点までが2つしかない項目を検索したいので、下記のように入力。
\.(..)</td>
や
\.(.)(.)</td>
で検索。

検索だけだったら
\...</td>
でいいけど、置換したい場合は、残したい部分を「()」で括る。
正規表現で置換
「Ctrl + H」で置換窓を出す。
「()」で括った部分を、変数「$」で置き換える。
変数が2個以上のときは、「$1, $2, ...」とする。
例えば、
\.(..)</td>
で検索した場合は、
.$10</td>
で置換。
\.(.)(.)</td>
で検索した場合は、
.$1$20</td>
で置換する。
スペースキーで置換していけるが、全部一変に置換したい場合は、右端にある「全置換」ボタンをおす。
ちなみにその1つ左側のボタンは「1つずつ置換」。

正規表現を使うと、作業時間が大幅にUPするので、是非使いこなしたいところ。
以下、以前まとめていた、正規表現についての説明 ▼
正規表現(Regular Expression, Regex)とは
正規表現とは、「いくつかの文字列を一つの形式で表現するための表現方法」。
この形式を使えば、違う言葉etc.が入った文字列でも検索することが可能となる。
正規表現では、「一つの形式で表現する」ため、いくつかの文字に対して特別な意味を与えている。
これらの特殊文字は「メタ文字」と呼ばれる。
これらのメタ文字を普通の文字として検索したい場合は、それらのメタ文字の前に「\」を付加する。
※ 上記メタ文字はすべて半角。
※ JIS配列のキーボードではバックスラッシュ「\」が印字されていない。
- Windows:「¥」を入力すると「\」として内部出力される(画面上は「¥」)。
- Mac: 「Option + ¥」で「\」が出力される。
- Mac mini等: 「Alt + ¥」で「\」が出力される。
▲ Windowsの、US配列(上)とJIS配列(下)のキーボード。US配列の「\」は、JIS配列では「¥」に割り当てられている。
いろいろなメタ文字の種類と役割
なんでも良い一文字 .
. は、「なんでも良い一文字」を表現する
正規表現 | 私は.が好き |
検索できる文字例 | 私は花が好き 私は君が好き 私は猫が好き |
... とつなげる事で、その文字数だけ「なんでも良い文字」として検索可能
正規表現 | 私は...が.. |
検索できる文字例 | 私はあなたが好き 私はトマトが嫌い 私はカエルが苦手 |
. そのものを検索したい場合は、 . の前に \ をつける
正規表現 | Watashi\.com |
検索できる文字例 | Watashi.com |
行頭の ^ と行末の $
行頭にある、任意の文字を検索したい場合
正規表現 | ^よろしく |
検索できる文字例 | ○ よろしく ○ よろしくお願いします ✕ 今後ともよろしくお願いします ✕ これからもよろしく |
行末にある、任意の文字を検索したい場合
正規表現 | よろしく$ |
検索できる文字例 | ○ よろしく ✕ よろしくお願いします ✕ 今後ともよろしくお願いします ○ これからもよろしく |
行にその言葉しかない文字を検索したい場合
正規表現 | ^よろしく$ |
検索できる文字例 | ○ よろしく ✕ よろしくお願いします ✕ 今後ともよろしくお願いします ✕ これからもよろしく |
行頭にある ^ 、行末にある $ を検索したい場合
行頭にある普通文字 ^ の前に ^ 、行末にある普通文字 $ の前に $ を加える。
正規表現 | ^^ |
正規表現 | $$ |
同じ文字の繰り返し * , + , ?
同じ文字の繰り返しを表す正規表現は、 * , + , ? の3種類。
* 直前の文字が0か1個以上
※ ファイル名を指定する時のワイルドカードで使用する * とは意味が異なるので注意
正規表現 | たのしー*い |
検索できる文字例 | たのしい たのしーい たのしーーい たのしーーーい etc. |
上記例の場合、 * は直前の文字がなんであろうと関係なく、「ー」の後の文字が全くなくて「い」がくるか、「ー」が1個以上続いた後に「い」がきている場合に検索対象として認識される。
+ 直前の文字が1個以上
正規表現 | たのしー+い |
検索できる文字例 | たのしーい たのしーーい たのしーーーい etc. |
上記例の場合、 + は直前の文字がなんであろうと関係なく、「ー」が1個以上続いた後に「い」がきている場合に検索対象として認識される。
? 直前の文字が0か1個のみ
正規表現 | たのしー?い |
検索できる文字例 | たのしい たのしーい |
上記例の場合、 ? は直前の文字がなんであろうと関係なく、「ー」の後の文字が全くなくて「い」がくるか、「ー」が1個だけあった後に「い」がきている場合に検索対象として認識される。
これは、単数形と複数形どちらの場合でも合致させたい場合や、
正規表現 | Kids? |
検索できる文字例 | Kid Kids |
スペースがあるかどうか不明の文字列を検索する場合にも利用できる。
正規表現 | friend ?ship |
検索できる文字例 | friendship friend ship |
何でもいい文字の連続 .* , .*?
何でもいい一文字 . と、連続表現 * , + , ? の併用で応用範囲が広がる。
正規表現 | 貴方は素敵.*。 |
検索できる文字例 | 貴方は素敵。 貴方は素敵です。 貴方は素敵な人です。 貴方は素敵だと思います。 貴方は素敵です。それに、貴方のお友達も素晴らしい人だと思います。 etc. |
上記例最後の、二文続いた表現
「貴方は素敵です。それに、貴方のお友達も素晴らしい人だと思います。」
では、最後の「。」まで検索が続くことになる。
最初の「。」で終わらせたい場合は、 .*? を使う。
正規表現 | 貴方は素敵.*?。 |
検索できる文字例 | 貴方は素敵です。(← ここまで。)(ここからは検索されない →)それに、貴方のお友達も素晴らしい人だと思います。 |
いずれかの文字列 |
| で区切られた文字列のいずれかの文字列が存在した時に、正規表現に合致する事になる。
正規表現 | りんご|みかん|ぶどう |
検索できる文字例 | りんご みかん ぶどう |
指定した文字のどれか [ ]
[ ] 内の文字列のいずれかが存在した時に、正規表現に合致
正規表現 | 私は[赤白緑]が好きです。 |
検索できる文字例 | 私は赤が好きです。 私は白が好きです。 私は緑が好きです。 |
[ ] との併用で便利な表現
アルファベットや数字は、 [ ] 内では - で範囲指定のように利用できる
正規表現 | 製造番号[A-Z0-9]00 |
検索できる文字例 | 製造番号A000 製造番号A100 製造番号B200 etc. 26x10通りの英数字の組み合わせ |
[ ] 内で ^ を使うと、「以外」という意味になる
正規表現 | 製造番号A[^A-Z]00 |
検索できる文字例 | 製造番号A000 製造番号A100 製造番号B200 etc. Aの次は大文字アルファベット以外 |
[ ] 内では、メタ文字は普通の文字として認識される
正規表現 | 製造番号[.*] |
検索できる文字例 | . か *のいずれかの文字。いずれもメタ文字ではない。 |
正規表現 | 製造番号A[ABC^]00 |
検索できる文字例 | A, B, C, ^のいずれかの文字。^はメタ文字ではない。 |
ただし、 ^ を普通文字として認識させたい場合は、必ず [ ] 内の2番目以降に記載する。先頭に書くと、 ^ に続く文字を否定する意味のメタ文字になる。
[ ] 内の先頭文字 ^ は続く ^ を否定する
正規表現 | [^^A] |
検索できる文字例 | .^とA以外の文字。 |
[ ] 内に [ ] を書いた場合
[ は普通文字として認識されるが、 ] は \] としないと誤検索する
正規表現 | [[abc] |
検索できる文字例 | [,a,b,dのいずれか。 |
正規表現 | [\]abc] |
検索できる文字例 | ],a,b,dのいずれか。 |
[ ] 内で \ の文字を指定したい場合
[ ] 内で \ の文字を指定したい場合は、\\と記述
正規表現 | [\\abc] |
検索できる文字例 | \,a,b,dのいずれか。 |
[ ] 内で - の文字を指定したい場合
範囲と誤認識されないよう順番に配慮する
正規表現 | [-1] |
検索できる文字例 | -, 4のいずれか。 |
上記を [1-] と記述すると誤認識する。
グループ化 ( )
( ) 内に記述された文字列をグループ化して検索してくれる。
正規表現 | (じゃ)+ーん! |
検索できる文字例 | じゃーん! じゃじゃーん! じゃじゃじゃーん! |
正規表現 | 明日は(晴れ|雨|曇り)です。 |
検索できる文字例 | 明日は晴れです。 明日は雨です。 明日は曇りです。 |
直前の文字を○○回繰り返す { }
{ } 内の直前の文字を、数字の数だけ繰り返してある語句を検索。
正規表現 | ABCD{3} |
検索できる文字例 | ABCDDD (Dが3回繰り返されている文字) |
すべての数字 \d
正規表現 | \d |
検索できる文字例 | 1, 2, 3, 4 etc.(すべての数字) |
すべての英数字と半角アンダーバー \w
正規表現 | \w |
検索できる文字例 | a, b, 1, 2, _ etc. (すべての英数字とアンダーバー) |
改行 \n
正規表現 | \n |
検索できる文字例 | (改行) |
半角スペース\s
正規表現 | \s |
検索できる文字例 | (半角スペース) |
References
コードをいわゆる「置換(置き換え)」、一気に変換したい!ってとことありませんか?「正規表現」を使うと一部の文字を削除したり、抽出したりできて超便利です。この記事は高機能エディタVS Codeの置換機能で正規表現をある程度使えるようになりたい人、コピペで手軽に置換をしたい人のために書かれた記事です。VS Codeの使い方、正規表現、置換の基本、よく使う置換のチートシートについて掲載しています。
正規表現って便利ですが、いつも忘れてしまいますよね?って自分だけでしょうか。 メモを兼ね、Visual Studio Code(VScode)でよく使う、正規表現をを用いた検索置換方法を紹介します。 前提 VScodeの検索...
置換の方法と各種メタ文字の説明、文章並替え、改行削除、余分な空白削除、CSVの作成方法まで詳しく解説。文書の一部がどのように並び替えられてゆくのか、対応表を使って詳しく、わかり易く解説するVisualStudioCodeの実例サンプル集。