PHP正则表达式,以匹配未替换的双引号

PHP正则表达式,以匹配未替换的双引号,php,regex,Php,Regex,我试图找出一个正则表达式,它将检测两个双引号中是否有未替换的双引号。我有这个,但它不起作用: if ( preg_match( '/^(\".*((?<!\\)\").*\")$/', $str ) ) { die("hey"); } if(preg\u match('/^(\”)*((?尝试使用preg\u match('/([^\\]\”)/,$str)尝试使用preg\u match('/([^\\]\”)/,$str)我认为用正则表达式不可能做到这一点。至少如果你想让它更

我试图找出一个正则表达式,它将检测两个双引号中是否有未替换的双引号。我有这个,但它不起作用:

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

if(preg\u match('/^(\”)*((?尝试使用
preg\u match('/([^\\]\”)/,$str)
尝试使用
preg\u match('/([^\\]\”)/,$str)

我认为用正则表达式不可能做到这一点。至少如果你想让它更通用一点-如果你只需要匹配一对双引号和一对不带双引号的单引号,那么这是可能的。不是正则表达式专家,所以不把这一点放在答案中,但是
^(\\)\*^(\\)呢\
您可以检查是否没有一个\但有一个“在另一个之前有任何内容”前面没有\。@Ariel它是用于错误检查的。如果在两个双引号中有任何未替换的双引号,那么我们就有一个错误。这就是我所需要的。我认为用正则表达式不可能做到这一点。至少如果你想让它更通用一点-如果你只需要匹配一对双引号和一个单unescaped一个那么它是可能的。不是正则表达式专家,所以不把这个放在答案中,但是
^(\\\)\“*^(\\)\”
你检查是否没有一个\但是有一个“在另一个之前有任何东西”前面没有\。@Ariel这是用于错误检查的。如果两个双引号中有任何未替换的双引号,那么我们就有一个错误。这就是我所需要的。这是不正确的。
\\“
是一个未替换的引号,前面有一个文字反斜杠,但它不会与这个正则表达式匹配。这是不正确的。
\\”
是一个前面带有文字反斜杠的未转义引号,但它不会与此正则表达式匹配。