2016-11-07 45 views
1

法律字符串,例如:? * "please help me" - 是合法的字符串 * "please"help me" - 是非法字符串,因爲help me"不以「開頭」。如何檢測一個字符串,不包含「使用通過<code>"</code>開始,以<code>"</code>結束,不應包含在中間<code>"</code>定義柔性

我想在flex中定義一個規則來捕捉合法字符串。 我試圖使用這個規則,但它不工作。編寫規則的 \"^[\"].*\"

+0

也許''[^「] +」' - 但是確切的說呢? – Jan

回答

1

一種方法是

["][^"]*["] 

請注意,這是沒有必要反斜槓轉義引號(或其他大多數正則表達式字符),如果他們是一個字符類中,所以["]是與\"完全一樣。但我更喜歡它看起來的樣子:)。

你寫的 - 有效["][^"].*["] - 意思是「一個報價,除了一個報價,任何字符串,一個報價」。你想要的是「一個報價,除報價之外的任何字符串,一個報價」,用上面的正則表達式表示。

如果要堅持字符串中至少包含一個字符,請將*替換爲+

+0

首先謝謝,我認爲你的想法很好,但在某些情況下,它在字符串內部是允許的,這是非法的。知道如何解決它呢? 例如「幫助」「(然後輸入)使字符串等待另一個輸入,它是錯誤的。 –

+0

感謝rici,我設法達成了解決方案。對於任何關心這個問題的人來說,解決方法是[[]] [^「\ n] * [」] –

+1

Fwiw,您從未提及該字符串不能包含換行符,精確的問題描述總是更好。 – rici

相關問題