大きな文書で特定の長さの数字を見つける必要があります。そのために正規表現を使ってみました。たとえば、正確に2桁の数字を検索する必要がある場合は、\d\d
/ dを2回使用してからスペースを使用します。これは素晴らしい作品です。
ただし、10桁の数字を見つけるには\d
10回入力することは実際には不可能です。
試して\d{2}
みてE486: パターンが見つかりません: \d{2}'
これを達成するためのより迅速で簡単な方法はありますか?
答え1
さまざまな正規表現方言があります。一部(Perlなど)にはバックスラッシュは必要ありません。量子化修飾子(\d{2}
)、一部(sedなど)には2つ(\d\{2\}
)が必要ですが、Vimでは開始フレーズにのみ2つ(\d\{2}
)が必要です。これは正規表現方言が互換性のない悲しい状態です。
また、一致させるには注意してください。精密数字の場合は、()内の数字と一致しないように\d\{2}
一致を固定する必要があります。これは次の方法で行うことができます。12
123
否定的に後ろを振り返ってそして視野:
\d\@<!\d\{2}\d\@!
答え2
答え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\+