すべての数字をどのように削除できますか? (ドット)ファイル内のすべての行でvimを使用しますか?たとえば、次の内容を含むファイルがあります。
afsdfsd 0.98096764
afsdfd 0.98196765
0.98096764
afsadfsd 0.98096764
adfsd 0.98096764
aadfsd 0.98096425
0.98096425
afsadfsd 0.98096761
` vimのいくつかの機能を使って数字のすべての数字とドットを削除する方法が気になります(私のファイルではドットは数字にのみ存在します)。
afsdfsd
afsdfd
afsadfsd
adfsd
aadfsd
afsadfsd
ベストアンサー1
:%s/[0-9]\+\(\.[0-9]\+\)\?//g
このデフォルトの正規表現(BRE)検索と置換操作は、1つ以上の数字(オプションでドットと1つ以上の数字の後に続く)を削除します。
vim
PCREは\d
同義語としても理解されるため、[[:digits:]]
次のように短縮できます。
:%s/\d\+\(\.\d\+\)\?//g
ところで、を:help perl-patterns
参照してくださいvim
。
0-9
これは短いだけでなく、数値ではなく、固有の数値ではないロケールでも機能します。
\v
vimを正規表現に使用すると、vimを短くする(私の考えでは読みやすくする)ことができます。素晴らしい正規表現パターン:
%s/\v\d+(\.\d+)?//g
:help magic
でも参照してくださいvim
。
ちなみに(例えば:%s/[0-9.]\+//g
)のような単純な正規表現は、句読点として使用されたピリオド(文の末尾や省略記号など...
)も削除します。