2017-05-07 37 views
1

我在vim腳本中遇到以下字符串比較。如何在vim腳本中滿足這種模式比較?

echo my_test_var =~ '\\\@<!`.*\\\@<!`' 

我想弄清楚,應該是什麼的my_test_var值,以便比較返回1

+1

它匹配一個未經轉義的反引號,然後匹配儘可能多的0+字符,直到最後一個未轉義的反引號。像'\'這裏有一些\ \'文本\''''' –

回答

1

在Vim中,01​​是一個否定後視結構,如果前面帶有後視圖案,則結果失敗。因此,整個表達式將匹配像

`some \`text\` here` 

作爲

  • \\\@<!`一個字符串 - 匹配不立即前面有一個反斜槓
  • .*一個反引號 - 比賽0+字符,多達可能的
  • \\\@<!` - 匹配沒有立即加上反斜槓的反引號