2021/09/13

VScodeで正規表現を使う

@ 酒井悠宇

VScodeで「構造は共通しているけど内容は微妙に違う」みたいなコードを変換するとき、一つ一つポチポチして直して行くのは面倒ですよね。
そんな時、「正規表現」を使うと便利だったので今回はそれをいい感じにまとめます。

正規表現を用いた置換の具体例

例えば以下のような記述を
- 何らかの文字列1 ([何らかの文字列2](何らかの文字列3))

以下のように変更したい時は、
- `何らかの文字列1` ([何らかの文字列2](何らかの文字列3))

VScodeのコード検索(command + F)で以下のように検索して

- (.+) (\(\[.+\]\(.+\)\))


置換の際は以下のように記述します。

- `$1` $2


こうすることで、

これが
- 何らかの文字列1 ([何らかの文字列2](何らかの文字列3))

こうなります。
- `何らかの文字列1` ([何らかの文字列2](何らかの文字列3))


記述の意味

詳しい記述方法についてみていきます。

コード検索の際に使用したこの正規表現について解説していきます。

- (.+) (\(\[.+\]\(.+\)\))


置換することを目的とするのではなく、ただただ正規表現を用いて以下のような文字列を検索したいだけの場合は
- 何らかの文字列1 ([何らかの文字列2](何らかの文字列3))

このように記述することで検索することができます。

- .+ \(\[.+\]\(.+\)\)


「.+」の意味

.+ の意味は「ここには何らかの文字列が入りますよ」です。

「\」の意味

\ の意味は「この後の文字を特殊な意味を持たない普通の文字として扱いますよ」です。

()[] は正規表現として特殊な意味を持つので今回はそれを普通の文字として扱うために\ を使用しています。

正規表現を「()」で囲む

今回は検索するだけではなく、「何らかの文字列1」を「`何らかの文字列` 」に置換したいので、正規表現自体を()で囲んで検索する手法を用います。

これを行うことで置換の際に、$1,$2... で正規表現によって検索した文字列を参照表示することができます。

実際に見た方が早いと思うのでまずは正規表現を()で囲んでみます。

これを

- .+ \(\[.+\]\(.+\)\)


こんな感じにします。

- (.+) (\(\[.+\]\(.+\)\))


コードを置換する際、()で囲んだ部分は左から順番に$1,$2... のように表すことができます。

試しに以下のように置換してみます。

- $1 $2


すると出力としては以下のようになります。
- 何らかの文字列1 ([何らかの文字列2](何らかの文字列3))

つまり何も変化していないということです。

つまり以下のように記述すれば、

- `$1` $2


以下のように置換されます。
- `何らかの文字列1` ([何らかの文字列2](何らかの文字列3))

正規表現、便利ですね!自分もガンガン使いたいと思います!

他にもいろんな正規表現があるみたいなので興味ある方は是非!
https://qiita.com/kgsi/items/a88662c6e43fa5311288

© 2021 powerd by UnReact