在我的 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 字符都有特殊含义。“非常神奇”@!
是一个否定断言.
匹配任意字符*
匹配任意数量的前一个原子&
是布尔逻辑与()
分组为一个原子/
是查找命令\
是转义字符
参考 :http://vimdoc.sourceforge.net/htmldoc/pattern.html,https://stackoverflow.com/questions/3883985/vim-regex-how-to-search-for-a-and-b-not-c
谢谢@muru