Vim находит шаблон, если он не совпадает

#search #vim

#Поиск #vim

Вопрос:

У меня есть набор шестнадцатеричных значений, разделенных пробелом, и я хочу найти, /[0-9a-f]{2} если значение не является 00 . Например, если буфер является

 00 00 00 00 18 00 00 00
  

шаблон должен соответствовать 18 , но не пробелу или 00 .

Ответ №1:

Это можно сделать с помощью следующего регулярного выражения:

 x{2}(00)@<!
  

Объяснение:

  • x : шестнадцатеричная цифра: [0-9A-Fa-f]
  • {2} : соответствует двум предыдущим атомам
  • (00) : атом, содержащий 00
  • @<! ничего, не требует соответствия за

Для получения дополнительной информации см.:

Комментарии:

1. Или более короткий вариант: vx{2}(00)@<!

2. Или гораздо более короткий вариант: v(00)@!xx {пункт 12}