поиск по шаблону соответствия vim первое вхождение - PullRequest
13 голосов
/ 08 июня 2011

У меня есть файл, которому <a href="blah.com" rel="blahblah" style="textdecoration:none;">blah</a>

Я хочу соответствовать rel="blahblah"

, но когда я делаю \rel=".*", он соответствует rel="blahblah" style="textdecoration:none;"

У меня естьпробовал rel=".*\{-\}" но это выдает ошибку nested \{

Ответы [ 4 ]

22 голосов
/ 09 июня 2011

Вы можете использовать:

rel=".\{-}"

\{-} используется для не жадного совпадения в VIM

3 голосов
/ 09 июня 2011

По умолчанию сопоставители регулярных выражений жадные.

  s/rel=".\{-}"/aaaaaaa/

у меня работает

{-} означает короткое замыкание выражения для соответствия кратчайшему шаблону.

3 голосов
/ 08 июня 2011

Попробуйте [^"] вместо ..Последний является «жадным» и будет соответствовать как можно большему числу символов.

* Регулярное выражение [d-r13579] используется для соответствия «классам символов»: в этом случае любая маленькая буква в диапазоне от dдо r или нечетной цифры.Если вы начинаете класс с ^, тогда он отрицает значение.

Таким образом, [^"] означает символ, кроме двойных кавычек, а "[^"]*" означает две двойные кавычки с любым количеством произвольных символов между ними.кроме двойных кавычек.

0 голосов
/ 19 июля 2017

Мне кажется, что использование \{-} сбивает с толку, поэтому в таких случаях я обычно использую что-то вроде /rel="[^"]*".

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