パターンに一致しないタグを検索する方法

パターンに一致しないタグを検索する方法

私の 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は、その後のパターンでは '0'-'9'、'a'-'z'、'A'-'Z'、'_' を除くすべての ASCII 文字が特別な意味を持つことを意味します。「とても魔法的」
  • @!否定的な主張である
  • .任意の文字に一致
  • *前の原子の任意の数に一致する
  • &ブールAND
  • ()原子にグループ化されている
  • /検索コマンドは
  • \エスケープ文字です

参照 :http://vimdoc.sourceforge.net/htmldoc/pattern.htmlhttps://stackoverflow.com/questions/3883985/vim-regex-how-to-search-for-a-and-b-not-c

ありがとう@muru

関連情報