私の 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.html、https://stackoverflow.com/questions/3883985/vim-regex-how-to-search-for-a-and-b-not-c
ありがとう@muru