2
我試圖創建一個Vim的語法文件,我想匹配文本的以下位:Vim的正則表達式跳過定界符
@[one two three four]
基本上,我想匹配one
和two
作爲兩個獨立的匹配,我不在乎three
和four
(或其他任何東西)。我也不想在表達式的開頭加入@[
分隔符。
我試圖與地區這樣做,就像這樣:
syn region langParamOne matchgroup=langListStart start=/@\[/ end=/\s\|\]/
syn region langParamTwo matchgroup=langListStart start=/@\[\S\+\s\+/ end=/\s\|\]/
不幸的是,這不僅顯得凌亂,但VIM將只匹配的地區之一,因爲一個包含了其他。
如何爲此語法設置一個匹配項,但不包括比賽中的起始@[
?
啊,所以VIM的正則表達式*做*支持前瞻/向後看。猜猜我錯過了。非常感謝,它效果很好! –
@JakeKing不僅如此,值得注意的是它支持*可變長度*後備(用於'langParamTwo')。即使在今天,許多正則表達式仍然不支持。 – Tomalak