Поиск точного совпадения с единственной цифрой - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь найти только отдельную цифру в vim. Например, если есть два набора цифр 1 и 123, и я хочу найти 1, я бы хотел, чтобы была найдена только единичная цифра 1.

Я пытался использовать регулярные выражения, такие как \ <1> и \% (a) @

1 Ответ

1 голос
/ 11 июля 2019

У вас почти было правильное решение.Вы хотите:

\<1\>

Это потому, что каждый угловой кронштейн должен быть экранирован.В качестве альтернативы вы можете использовать:

\v<1>

Флаг \v указывает vim обрабатывать больше символов как особые без необходимости экранирования (например, (){}+<> все становятся специальными, а не буквальными текстами. Читать :h /\v Подробнее об этом.

Отличным справочником для изучения регулярных выражений в vim является vimregex.com . Символы \<\> описаны в разделе 4.1 «Якоря».


Если вы хотите сопоставить текст, например 1.23, это тоже возможно. Два разных подхода:

  1. Измените параметр iskeyword, включив в него ..также повлияет на то, как w движется

  2. Используйте \v<1(\d|.)@!, что в основном означает "1 в начале слова, что не , за которым следуеткакая-то другая цифра или точка. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...