2011-08-02 89 views
1

我試圖找出一個正則表達式,它將檢測兩個雙引號內是否有非轉義的雙引號。我有這個,但它不工作:PHP正則表達式匹配未轉義的雙引號

if (preg_match('/^(\".*((?<!\\)\").*\")$/', $str)) { 
    die("hey"); 
} 
+0

我不認爲這是可能做到這一點與正則表達式。至少如果你想讓它更通用一些 - 如果你只需要匹配一對雙引號和一個單引號,那麼這是可能的。 – Ariel

+0

不是正則表達式的專家,所以不把這個放在答案中,但是'^(\\)\「。* ^(\\)\」'你檢查是否沒有一個\,但是有一個「沒有\在它前面。 –

+0

@Ariel這是爲了檢查錯誤。如果兩個雙引號內有任何非雙引號,那麼我們有一個錯誤。這就是我需要的。 –

回答

1

嘗試preg_match('/([^\\]\")/', $str)

+2

這是不正確的。 '\\「'是一個前面帶有文字反斜槓的未轉義引號,但不會與此正則表達式匹配。 – bukzor

相關問題