내 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님 감사합니다