Как мне сопоставить угловую скобку> но не >> в поиске по регулярному выражению vim - PullRequest
4 голосов
/ 17 сентября 2011

Я успешно сопоставил <, но ему не предшествовало (отрицательное предпросмотр) или за ним последовало (отрицательное упреждающее утверждение) < на

<\@>!<<\@!

Однако, хотя я пытался сопоставить один >, исключая >>, следующее выражение не работает

>\@>!>>\@!

Почему? Как мне сделать поиск?

1 Ответ

4 голосов
/ 17 сентября 2011

Ваше <\@>!<<\@! регулярное выражение:

  • <\@>! несколько матчей <\@>!; Я думаю, что вы имели в виду <\@<!
  • < соответствует <
  • <\@! соответствует нулевой ширине, если < не совпадает в текущей позиции

Работает с <\@<!<<\@!.

Синтаксис отрицательного взгляда за утверждениями: (atom)\@<!, где (atom) - это то, с чем вы не хотите совпадать. В данном случае это <, следовательно, <\@<!.

Синтаксис отрицательных прогнозных утверждений: (atom)\@!, где (atom) - это то, с чем вы не хотите совпадать. В данном случае это <, следовательно, <\@!.

В PCRE регулярное выражение будет:

(?<!<)<(?!<)

Другое регулярное выражение (>\@>!>>\@!) работает.

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