как искать теги не соответствующие шаблону

как искать теги не соответствующие шаблону

В моем XML-файле много тегов местоположения. Например:

 <location>file:///home/faizal/Music/THE%20DOORS/Studio%20albums/2007%20Infected%20Mushroom%20Presents%20-%20The%20Doors%20Remixed%20(2%20CD)%20@320/CD2/07%20Break%20on%20Through%20(Infected%20Mushroom%20Guitar%20Rmx).mp3</location>

Я хотел бы найти все теги местоположений, которые не начинаются с file:///home/faizal/Music/. Как мне написать команду vim, чтобы сделать это?

Приведенная ниже команда не исключает строки с file:///home/faizal/Music/шаблоном. Что я делаю не так?

/^\(.*\<location\c\>\)\&\(.*file\:\/\/\/home\/home\/faizal\/Music\)\@!

решение1

Использовать :

/\v(.*\<location\>)&(.*file:\/\/\/home\/faizal\/Music)@!
  • \vозначает, что в следующем за ним шаблоне все символы ASCII, за исключением «0»-«9», «a»-«z», «A»-«Z» и «_», имеют особое значение. «очень волшебно»
  • @!является отрицательным утверждением
  • .соответствует любому символу
  • *соответствует любому числу предыдущего атома
  • &это логическое И
  • ()группируется в атом
  • /это команда find
  • \это экранирующий символ

Ссылка :http://vimdoc.sourceforge.net/htmldoc/pattern.html,https://stackoverflow.com/questions/3883985/vim-regex-how-to-search-for-a-and-b-not-c

Спасибо @muru

Связанный контент