Vim

vim 搜尋包含特定位數的數字

  • February 19, 2021

我需要在大文件中找到特定的長度數字。我試圖為此使用正則表達式。例如,如果我需要搜尋正好有 2 位數字的數字,我會使用\d\d(即 /d 兩次後跟一個空格)。這很好用。

\d但是要找到 10 位數字,輸入10 次是不可行的。

試過了\d{2},說“ E486:找不到模式:\d{2}

有沒有更快/更簡單的方法來實現這一目標?

有不同的正則表達式方言;有些(例如 Perl 的)在量化修飾符( )中不需要反斜杠\d{2},有些 (例如 sed) 需要兩個 ( \d\{2\}),而在 Vim 中,只有開頭的捲曲需要它 ( \d\{2})。這就是不兼容的正則表達式方言的可悲狀態。

另請注意,要匹配確切的數字,您必須錨定匹配,以便\d\{2}與 中的數字 ( 12)不匹配123。這可以通過消極的後視前瞻來完成:

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

嘗試以下操作:

\d\{2}

\你不應該使用/

您可以在此站點vimwith中找到更多關於 vim 的正常表達的資訊:help regular

引用自:https://unix.stackexchange.com/questions/90345