web-dev-qa-db-ja.com

特定の桁数を含むvim検索番号

大きなドキュメントで特定の長さの数値を見つける必要があります。私はこれに正規表現を使用しようとしました。たとえば、正確に2桁の数字を検索する必要がある場合は、\d\dを使用します(つまり、/ dを2回続けてスペースを続けます)。これはうまくいきます。

ただし、10桁の数字を検索する場合、\dを10回入力することは現実的ではありません。

\d{2}を試して、「E486:パターンが見つかりません:\ d {2}」と言いました

これを達成するためのより速く/簡単な方法はありますか?

23
mtk

さまざまな正規表現の方言があります。 量修飾子\d{2})でバックスラッシュを必要としないもの(Perlなど)、2つ(\d\{2\})を必要とするもの(sedなど)、およびVimでは開始のみカーリーはそれを必要とします(\d\{2})。これは、互換性のない正規表現の方言の悲しい状態です。

また、一致するexact数値の場合、\d\{2}12の数字(123)と一致しないように、一致をアンカーする必要があることに注意してください。これはnegative look-behindおよびlook-aheadで実行できます。

\d\@<!\d\{2}\d\@!
32
Ingo Karkat

以下を試してください:

\d\{2}

\ではなく/を使用する必要があります

この site またはvim:help regularを使用すると、vimの通常の表現について詳しく知ることができます。

10
Raphael Ahrens

ブラケットのエスケープは機能します:\d\{2\}

2
one_half_3544

それほどきれいではありませんが、これはログファイルの5桁で機能しました。

/\<\%(\d\d\d\d\d\)\>
1
theINtoy