nikkie-ftnextの日記

イベントレポートや読書メモを発信

VS CodeのFindで正規表現。.+と$0だけで、行をたやすくクォートで囲めたとは!

はじめに

ありすちゃじゃなくて、橘さん、お誕生日おめでとうございます
アニメU149全部見ました。キラメキ、よかった... nikkieです

これまでVS Codeを長らく使ってきました1が、本日衝撃が走りました。

目次

行をダブルクォートで囲みたい

これを2

橘 ありす
Emily Stewart

こうしたいです

"橘 ありす"
"Emily Stewart"

.+"$0"でできるよ!

「橘 ありす」の行をダブルクォートで囲んだ後、これから「Emily Stewart」の行を囲むという瞬間を切り取りました。

.+"$0"の衝撃

これまでずっと、行頭の置換 -> 行末の置換の2ステップでやってきました。

  • ^を検索 -> "に置き換え
    • 「"橘 ありす」となる
  • $を検索 -> "に置き換え
    • 「"橘 ありす"」、できた!

一発でできたなんて、もう、穴掘って埋まってますぅ〜!

この動画を見てくれ! VS Code tips — Using regex capture groups in find replace

1分40秒のこちらの動画、英語ですが、画面に注目すると雰囲気はつかめると思います!

.+"$0"で囲むだけでなく

正規表現キャプチャと後方参照を使って自由自在です!

  • "(.+)"を検索
    • 後方参照$1でキャプチャした部分(.+に該当する部分)を取り出す
    • つまり、囲んだダブルクォートを外せる
  • (\w+) (\w+)を検索
    • 後方参照を使って$2 $1
    • これは「名 姓」の形式なので「姓 名」に入れ替えられる!
    • 日本語非対応の書き方みたいです(「橘 ありす」にヒットせず)

VS Codeのドキュメントより

Findで正規表現が使えると書かれています。

Basic Editingの「Find and Replace」

https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace

Advanced find and replace options」に

the Find Widget also has three advanced search options:

この中に「Regular Expression」が挙がっています。
ウィジェットにある「.*」のボタンのことですね(3つ並んでいるところの一番右)

Visual Studio Code Tips and Tricksの「IntelliSense」

https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_intellisense

Search and modify」に正規表現のキャプチャについて記載があります3

.*(Use Regular Expression)ボタンをクリックした後

write a regular expression and use parenthesis to define groups. You can then reuse the content matched in each group by using $1, $2, etc. in the Replace field.

続く画像はキャプチャと後方参照を使った例ですね。
https://github.com/microsoft/vscode-docs/blob/8452bf966d804306a11efa5fd2659e636516a797/docs/getstarted/images/tips-and-tricks/search_and_modify.png

終わりに

VS Codeで行をダブルクォートで囲みたいとき、.+"$0"でできるというのは衝撃でした。
見つけた動画では、キャプチャと後方参照を使って自由自在に置換

正規表現を知ることでVS Codeでできることが広がりますね。
Pythonでは後方参照が\1だったのですが4VS Codeでは$1だよと教えていただいて、このたび道が拓けた感覚です(ありがとうございました!)

(おまけ)過去に正規表現を取り上げた記事

P.S. VS Codeのupdatesにこんまりがいました

January 2019 (version 1.31)

https://code.visualstudio.com/updates/v1_31#_removed-legacy-search-mode

But as Marie Kondo says, we must tidy up the things that no longer spark joy.

こんまり!


  1. 便利と感じた機能は記事に取り上げています。
  2. 橘さん エミリーちゃん とってもかわいいですよね(<- 脱線してないで記事書いて)
  3. you can also search and reuse parts of what was matched, using regular expressions with capturing groups.
  4. この記事を書いて後方参照を理解しました。