すべての数字をどのように削除できますか? vimを使用してファイルのすべての行に(ドット)を追加しますか?

すべての数字をどのように削除できますか? vimを使用してファイルのすべての行に(ドット)を追加しますか?

すべての数字をどのように削除できますか? (ドット)ファイル内のすべての行で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つ以上の数字の後に続く)を削除します。

vimPCREは\d同義語としても理解されるため、[[:digits:]]次のように短縮できます。

 :%s/\d\+\(\.\d\+\)\?//g

ところで、を:help perl-patterns参照してくださいvim

0-9これは短いだけでなく、数値ではなく、固有の数値ではないロケールでも機能します。

\vvimを正規表現に使用すると、vimを短くする(私の考えでは読みやすくする)ことができます。素晴らしい正規表現パターン:

%s/\v\d+(\.\d+)?//g

:help magicでも参照してくださいvim

ちなみに(例えば:%s/[0-9.]\+//g)のような単純な正規表現は、句読点として使用されたピリオド(文の末尾や省略記号など...)も削除します。

おすすめ記事