2011-08-02 61 views
1

我试图找出一个正则表达式,它将检测两个双引号内是否有非转义的双引号。我有这个,但它不工作:PHP正则表达式匹配未转义的双引号

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

我不认为这是可能做到这一点与正则表达式。至少如果你想让它更通用一些 - 如果你只需要匹配一对双引号和一个单引号,那么这是可能的。 – Ariel

+0

不是正则表达式的专家,所以不把这个放在答案中,但是'^(\\)\“。* ^(\\)\”'你检查是否没有一个\,但是有一个“没有\在它前面。 –

+0

@Ariel这是为了检查错误。如果两个双引号内有任何非双引号,那么我们有一个错误。这就是我需要的。 –

回答

1

尝试preg_match('/([^\\]\")/', $str)

+2

这是不正确的。 '\\“'是一个前面带有文字反斜杠的未转义引号,但不会与此正则表达式匹配。 – bukzor

相关问题