次のように:(コロン)で区切られた2つのフィールドを含むファイルがあります。
Ram:con_[3:4]_aen[52:7]
Rakesh:sync[0:128]
vimエディタを使用して、角括弧[]内の:(コロン)を次のように!に変換する必要があります。
Ram:con_[3!4]_aen[52!7]
Rakesh:sync[0!128]
私はこれを試しましたが、上記の結果は得られませんでした。
:%s/[%d:%d]/[%d!%d]/g
答え1
あなたが使用できる:
%s/\(\d\+\)\@<=:/!/g
\(\d\+\)
素数を探す
\@<=
積極的に振り返ってください。戻るとは、前のパターン(この場合は上記のパターン)が次の記号と一致する必要があることを意味します。 VIMがこれを達成する方法の詳細を学ぶことができます。ここ。
:
マッチ':'。
答え2
あなたはそれを使用することができます
:%s/\([[0-9]\+\):\([0-9]\+]\)/\1!\2/g
要素をグループ化し、[number1
最初の要素と2番目の要素をnumber2]
コピーし、それらの間に1つを配置しました。\([[0-9]\+\)
\([0-9]\+]\)
\1
\2
!
以前は1つ以上の数字を意味していましたが、コロンと各括弧の間に常に数字があると確信している場合は、[0-9]\+
次のように単純化できます(ゼロ以上の数字を意味します)。[0-9]*
:%s/\([[0-9]*\):\([0-9]*]\)/\1!\2/g
答え3
:%s/\v\(\[[0-9]+):([0-9]+\])/\1!\2/g
\v
追加の正規表現機能の有効化
(\[[0-9]+)
左カッコと少なくとも 1 桁の数字で構成されるキャプチャグループ
:
不要なコロン
([0-9]+\])
1つ以上の数字と閉じ括弧で構成されるキャプチャグループ
\1!\2
希望キャプチャグループと爆発の内容