패턴과 일치하지 않는 태그를 검색하는 방법

패턴과 일치하지 않는 태그를 검색하는 방법

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

관련 정보