vim 特定の数値を含む数値の検索

vim 特定の数値を含む数値の検索

大きな文書で特定の長さの数字を見つける必要があります。そのために正規表現を使ってみました。たとえば、正確に2桁の数字を検索する必要がある場合は、\d\d/ dを2回使用してからスペースを使用します。これは素晴らしい作品です。

ただし、10桁の数字を見つけるには\d10回入力することは実際には不可能です。

試して\d{2}みてE486: パターンが見つかりません: \d{2}'

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

答え1

さまざまな正規表現方言があります。一部(Perlなど)にはバックスラッシュは必要ありません。量子化修飾子\d{2})、一部(sedなど)には2つ(\d\{2\})が必要ですが、Vimでは開始フレーズにのみ2つ(\d\{2})が必要です。これは正規表現方言が互換性のない悲しい状態です。

また、一致させるには注意してください。精密数字の場合は、()内の数字と一致しないように\d\{2}一致を固定する必要があります。これは次の方法で行うことができます。12123否定的に後ろを振り返ってそして視野:

\d\@<!\d\{2}\d\@!

答え2

以下を試してください。

\d\{2}

使用しないで\ください/

vimの正規表現の詳細については、こちらをご覧ください。場所またはvim:help regular

答え3

エスケープ括弧の仕組み:\d\{2\}

答え4

5 などの固定長数の検索

/\d\{5\}

12345、123456に一致

5桁以上の数字には5桁の部分文字列が含まれているため、その数も検索されます。

単語境界の開始

\<

単語境界の終わり

\>

次に、以下の方法を使用して正確な5桁の数字を検索します。

/\<\d\{5\}\>

12345と一致しますが、123456は一致しません

5桁以上の数字を検索するには、次のようにします。

/\<\d\{5,\}\>

5〜8桁の数字を検索するには、以下を使用します。

/\<\d\{5,8\}\>

8桁以下の数字を検索するには、次のコマンドを使用してください。

/\<\d\{,8\}\>

1桁以上の短縮番号

/\d\+

関連情報