2014-02-27 77 views
1

我可以毫無問題地搜索正則表達式,例如
/["']
但是在if語句中它失敗了,例如,Vimscript:如何在if語句中編寫正則表達式

:let c = "w" 
:if c !~ ["'] 
:echo "OK" 
:endif 

產生這些錯誤消息

E114:缺少引號: 「']
E15:無效的表達:C〜[」']

我已經試過了無數不同的方式,反斜槓,單引號和雙引號,以及「非常神奇」,但我得到的只是錯誤信息的變化。我應該如何寫這個'如果'的聲明?

+0

所以我猜只是逃避引號''[\「\']''沒有工作? – Moritz

+0

如果Perlish的,你需要分隔符'如果c!〜/ ['''] /' – sln

+0

在Perl中'!〜'是一個正則表達式運算符(也就是'=〜') – sln

回答

1

你應該使用正則表達式爲字符串,嘗試

:if c!~"[\"']" 
+0

\關於內部「有所不同,謝謝。 – user985675

0

我個人在使用Vim搜索[和反對]時遇到了一些問題。通常情況下,您可以單獨搜索而不會出現任何問題,但是當您將兩者結合在一起時,它們需要被轉義。

因此,試試這個:\["'\],看看是否有效。

+0

產生E15:無效表達式:\\ [''\\] E15:表達式無效:c!〜\\ [''\\] – user985675