2017-09-19 3 views
1

Vim에서이 "마술"을 이해하는 데 어려움을 겪고 있습니다. Vim에서 Magic 사용? (matchstr 함수의 정규식)

은 현재 내가 아주 간단한 정규식 검색 문자열에서 숫자의 마지막 목록을 가져 만드는 중이라서 : 위의 같은

for file in files 
     echo file 
     let versionNum = matchstr(file, '(\d+)(?!.*\d)') 
    end for 

뭔가. 기본적으로 문자열이 xxx.xxx.xxx.x1234 인 경우 1234를 구문 분석해야합니다.

그러나 matchstr에서 정규 표현식을 사용하는 데 어려움을 겪고 있습니다. 내가 여기서 잘못하고있는 것을 완전히 이해하십시오.

답변

2

명시 적으로 마술 모드로 작업해야하는 패턴의 시작 부분에 \v을 사용해야합니다.

또한 사용중인 구문은 vim에서 지원하지 않습니다. 완벽하지는 않지만 \v.*\D\zs\d+|^\d+ 또는 더 간단하게는 \v\d+\ze\D*$을 사용합니다.