2017-10-15 7 views
0

vimでlatexで書かれたテーブルのいくつかのカラムを置き換えるために、私はこの作業を行うための正規表現を書いています。正規表現は次のとおりです。この正規表現はvimの文字列と一致しません

s/\v^(\d+ &)(\d+ &)(\d+ &)/\1\3\2/g 

そして私は、それは以下のこれらのような行を一致させたい:

10 & 25 & 25 & 100\\ 
7 & 56 & 56 & 100\\ 

しかし、この正規表現は機能しません。 Vimはこのパターンが見つからないと私に伝え続けます。しかし、私はすでに非常に魔法のモードを使用しており、この正規表現は他の場所で動作します。https://regex101.com/r/DBwTHM/1を参照してください。

誰でも私を助けてくれますか?どうもありがとう!

答えて

1

私はいつも "verymagic"が面倒です。 Vimの「非常に魔法」モードでは

:s/^\(\d\+\) & \(\d\+\) & \(\d\+\)/\1 \& \3 \& \2 
3

あなたはバックスラッシュ\で各アンパサンド&をエスケープする必要があります。

 
:%s/\v^(\d+ \&)(\d+ \&)(\d+ \&)/\1\3\2/g 
関連する問題