他のエディタの置換解説ページはこちら
VisualStudioCode (略称 VS Code ) を使った置換(変換・置き換え)、並び替えの実例集です。正規表現による置換(regex replace)と入れ替えをマスターすれば、面倒な作業を大幅に短縮することができるようになります。
VisualStudioCodeでの置換の方法
置換ウィンドウの呼び出しショートカット
ctrlを押しながらHを押して表示される以下のウィンドウで実行します。
【Find】欄に置換前の文字列、【Replace】に置換後の文字列を入力します。Find欄の.*をクリックして正規表現をアクティブ(上記のような青い状態)にしてください。
検索・置換用メタ文字
. |
任意の一文字 |
* |
直前の0回以上の繰り返し ワイルドカード |
|
|
+ |
直前の1回以上の繰り返し |
|
|
? |
直前の0~1回の繰り返し |
[~] |
~のいずれか1文字 |
^ |
文字列の文頭 |
[AB] |
AまたはB |
$ |
文字列の文末 |
[0-9] |
数字1文字 |
{N} |
直前の文字やグループのN回分 |
[a-f] |
a,b,c,d,e,fの1文字 |
|
|
\n |
改行(LF) |
\d |
半角数字 |
\t |
タブ |
\w |
半角英数字とアンダースコア |
\s |
空白、タブ |
|
|
n,t,s,d,w等を\Dのように大文字にすると、それ以外(否定)となる。\Dは半角数字以外の文字ということ。 |
※\は日本語キーボードでバックスペースの左隣、¥のことです。
検索のショートカットは、ctrlを押しながらFを押して実行します。メタ文字を用いて、色々と検索を試してみましょう。
( ~ ) |
()を使って置換用の区切を行う |
$ |
置換後文字は $1~ で呼び出します。 |
通常の置換
改行コードをカンマ(コンマ)に置換する(カンマがすでに存在している場合のCSV化)
改行コードをカンマに置換(変換)します。元々存在していたカンマを“,”とし、改行コードを変換したカンマは , と表示するように実行します。こうすることで置換前の文書にカンマが存在していた場合にも対応することができます。
置換前の文字列 |
|
目的とする文字列 |
43,279
532aa |
→ |
43″,”279,532aa |
1 |
Find |
, |
Replace |
“,” |
2 |
Find |
\n |
Replace |
, |
- 改行は \n です。
- ,が文中にある。この段階で\n置換をすると、置換後の文字に,が発生しデータ処理に不都合が生じる。2段階置換を行う。前段階として、,を“,”に置換をしておく。こうしておくことで、ほとんどのアプリなどで,をCSVの区切り文字ではなく、文字列として判断できるようになる。ただし、場合によっては対応しない場合もあるため、そういった場合は別の文字列、例えばCCCなどに置換しておくとよい。
- \nを使って改行を検索し、,に置換する。
- 事前にカンマを“,”としておくことで、後の作業での予期せぬトラブル発生を防ぐことができる。
置換前の文字を置換後にも使用する
桁表現のカンマ(コンマ)を削除する
置換前の文字列 |
|
目的とする文字列 |
1,200 |
→ |
1200 |
1 |
Find |
([1-9]),([0-9][0-9][0-9]) |
Replace |
$1$2 |
- ,を消すだけの置換では他の部分に影響が出てしまう可能性があるため、おすすめしません。
- ()を使って置換前の文字を置換後の文字に使用する方法をとる。()によって文字列をグループ化していると考えます。以下は()と対応するイメージ。$1からカウントです。
- [1-9] は1~9の数値を意味します。0から999までの数は[0-9][0-9][0-9]と表現し、[0-999]という書き方はできません。テキストエディタは1文字単位で判断をするからです。
- $は置換前の文字を置換後に使用する際に使用します。([1-9])の[1-9]に対応する文字が$1、([0-9][0-9][0-9])の[0-9][0-9][0-9]に対応する文字が\2となります
1 |
, |
200 |
([1-9]) |
, |
([0-9][0-9][0-9]) |
$1
|
|
$2
|
文章を並び替える(1文字)
置換前の文字列 |
|
目的とする文字列 |
私にとってAはBです |
→ |
私にとってBはAです |
1 |
Find |
(私にとって)(.)(は)(.)(です) |
Replace |
$1$4$3$2$5 |
- .をは任意の1文字を意味します。それはCでもFでも数字でも対応します。
- ()を使って置換前の文字を置換後の文字に使用する方法をとる。(上の方法と同じ)
私にとって |
A |
は |
B |
です |
(私にとって) |
(.) |
(は) |
(.) |
(です) |
$1 |
$2 |
$3 |
$4 |
$5 |
$1 |
$4 |
$3 |
$2 |
$5 |
- 以上から、順番は $1$4$3$2$5 となることがわかる。
- 私にとって(.)は(.)です → 私にとって$2は$1です でも構わない。
- 「です」は置換判定になくても良いが、例えば「私にとってAはBではない」という文章(文字列)があった場合、その文字列も置換してしまうため、「です」を加えた。誤判定対策です。
- 予期せぬ置換が起こることがあるため、置換対象が全て含まれる範囲内で、できる限り長い文字列にしたほうが良い。
文章を並び替える(複数の文字列)
置換前の文字列 |
|
目的とする文字列 |
私にとってAAはBBBです |
→ |
私にとってBBBはAAです |
1 |
Find |
(私にとって)(.+)(は)(.+)(です) |
Replace |
$1$4$3$2$5 |
よく使う置換サンプル集
ピリオドの置換
置換前の文字列 |
|
目的とする文字列 |
45.232 |
→ |
45P232 |
- .の一文字、ピリオドのみを検索すれば良いように思われますが、ピリオドは正規表現で使用される文字ですから、.だけでは全ての文字列と判断し、結果としてすべての文字を一つ一つPに置換して 45.232 → PPPPPP となってしまいます。ちなみに、.+ とすると 45.232 → P となる。
- 正規表現のチェックを外せば、.だけでも置換することができます。
- そこで、\を用います。\.とすれば、.を正規表現用の文字ではなく、単なるピリオドとして扱われるようになります。
スペース(空白文字)
置換前の文字列 |
|
目的とする文字列 |
スペースが” “ |
→ |
スペースが “SPACE” |
- 空白は” “、つまり検索欄にスペースを押して空白文字を入力します。ダブルクォーテーション[“]は入力せず、スペースキーを押すだけです。
- \sというものもありますが、これはタブとスペース(空白文字)、そして改行も含みます。ですから\sは期待通りの結果にはなりません。
- ” ” → “” とすれば空白を削除できる。
タブの置換
置換前の文字列 |
|
目的とする文字列 |
タブが” “ |
→ |
タブが”TAB” |
改行の置換と削除
置換前の文字列 |
|
目的とする文字列 |
北海道
札幌市
|
→ |
北海道札幌市 |
- 改行コードは\nとします。
- 置換後について何も入力しなければ、そのまま文章は繋がり、「北海道札幌市」となる(改行の削除)
置換を用いて文字の交換をするテクニック
置換はあくまで、文字を別の文字に置き換える動作です。では、文字を入れ替えるにはどうしたらよいでしょうか。つまりAをBにし、BをAにする方法です。ただ、そのままA→B、B→Aとすると、AもBが全てAになってしまいます。
そこで、一旦Aを別の文字に置き換えを行います。
- A→XXXXX など絶対に登場しないであろう文字列に、置換(退避させる)します。
- B→A に置換します。
- XXXXをBに置換します。
このようにすることで、完全に文字の置き換えをすることができます。このテクニックは様々な機会に活用できるので使ってみてください。
VSCodeのショートカットキー
ショートカットキーについては以下の記事を参照してください。
Visual Studio Codeの便利なショートカットキー完全ガイドで作業効率を大幅アップ
Visual Studio Codeを使いこなすためのショートカットキーを紹介します。作業効率をアップさせるための基本的なキー操作から、あまり使われないニッチなものまで詳しく紹介します。 VSCodeのよく使うショートカットキー ショートカットキー 動作 Ctrl + P クイックオープン(ファイルを開く) Ctrl ...