正規表現でインデントのスペースの個数を置換する
https://stackoverflow.com/a/30304686 より。
4スペースでインデントされているファイルを正規表現で2スペースに置換したい、あるいはその逆の場合は\G
を使えばできる。
\G
は.NET, PCRE (C, PHP, R…), Java, Perl, Rubyでサポートされている。
Rubyを使うなら:
ruby -pe '$_.gsub!(/(^|\G) {4}/, " "*2)' < {ファイル名}
Vim内でやるなら:
%!ruby -pe '$_.gsub\!(/(^|\G) {4}/, " "*2)'
解説
\G
は
1. 文字列の先頭
2. 前のマッチの直後の位置
のいずれかにマッチする。
他にも例えば
Tarzan A:33 B:32 C:36 Jane A:35 B:33 C:31
という文字列からJaneのスコアをパースして取り出したいというような場合にも使える:
irb(main):002:0> "Tarzan A:33 B:32 C:36 Jane A:35 B:33 C:31".scan(/(?:Jane|\G) \w+:(\d+)/)
=> [["35"], ["33"], ["31"]]
下記ページで解説されている。
http://www.rexegg.com/regex-anchors.html#G
Author And Source
この問題について(正規表現でインデントのスペースの個数を置換する), 我々は、より多くの情報をここで見つけました https://qiita.com/aosho235/items/f7c56d304abfc1e1f190著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .