3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

vimで正規表現を使った大文字/小文字変換

Last updated at Posted at 2021-01-06

やりたいこと

  • 正規表現にマッチした部分の文字列のみを対象に、アルファベットの大文字小文字を変換したい
  • vimでやりたい

  • こんな文字列があったとする
Vim\u3063\u3066\u6700\u9AD8\u3067\u3059\u3088\u306D
  • これのUnicodeのアルファベット部分([a-f])だけを小文字にしたい
    • Vimは変換したくない
    • \uも変換したくない(元々小文字だけど)

解決方法

コマンド

  • コマンドモードで以下を実行
:%s/\\u\(\w\+\)/\L\0/g

結果

Vim\u3063\u3066\u6700\u9ad8\u3067\u3059\u3088\u306d

ポイント

  • 置換後のパターンに \Lをつけると小文字に変換してくれる。
    • \Uだと大文字
  • \l\uだと先頭の文字のみをそれぞれ小文字/大文字に変換してくれる
  • sedコマンドと同じなのかな?やったことないけど
this is test text

に対して

:%s/\(\w\+\)/\u\0/g

とすると

This Is Test Text

になる。

余談

  • vim 置換 小文字とかでぐぐると選択して Uとか Shift + Uの話ばかりがヒットして目的のことが調べられなかったが、英語で検索したら一髪で参考記事に辿り着いた
    • 私のぐぐり力の問題かもしれないが…

参考

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?