Поиск шаблона в Vim, исключающий некоторые возможности - PullRequest
1 голос
/ 23 апреля 2019

Как мы можем искать что-то в Vim, исключая некоторые возможности, которые охватывал бы поиск?

Например: поиск по How\s[a-z], но результат не должен включать How a и должен включать How b, How c, ..., How z.

UPDATE Одним из возможных решений вышеприведенного иллюстративного примера является How\s[b-z], как указано @Jonathon K, и это правильно. Но то, что я ищу, - это общее решение, в котором я могу исключить одно из многих возможных решений в поиске Vim (Пример 2: исключить ERROR, когда я ищу er*. Для этого могут быть специальные решения) кейс тоже :)).

1 Ответ

2 голосов
/ 23 апреля 2019

Пример 2. Исключить ОШИБКУ при поиске er*.В этом случае также могут быть специальные решения.

Только к вашему сведению, er* не будет соответствовать ERROR.Это будет соответствовать любому из них:

e

er

errrrr

errrrrrrrrrrrrrrrrr

ВыВозможно, вы думаете о ER.*

Переходя от этого ...


Вы в основном ищете квантификатор \@!.Он утверждает, что предыдущий атом не совпадает в текущей позиции.Это также нулевая ширина.Если вы хотите найти ER.*, но не совпадать с ERROR, вы можете сделать это:

ER\(ROR\)\@!.*

Или, как я предпочитаю, с "магией" на (\v):

\vER(ROR)@!.*

Или с вашим первым примером:

\vHow\sa@![a-z]

Даже если бы я рекомендовал использовать [b-z], как указал Джонатон:)

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