2011-08-02 10 views
1

私は2つの二重引用符内のエスケープされていない二重引用符があるかどうかを検出します正規表現を把握しようとしていると一致します。私はこれを持っているが、それは働いていない:PHP正規表現はエスケープされていない二重引用符

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

で試してみてください。少なくとももう少し一般的にしたい場合は、二重引用符の一組とエスケープされていない一文字を一致させるだけでよい場合は、それが可能です。 – Ariel

+0

正規表現のエキスパートではないので、これを答えに入れないのですが、 '^(\\)\"についてはどうでしょうか?* ^(\\)\ "' \その前に\を付けずに。 –

+0

@Arielエラーチェック用です。 2つの二重引用符内にエスケープされていない二重引用符がある場合、エラーが発生します。それが私が必要なものすべてです。 –

答えて

1

を、私はそれが正規表現でそれを行うことは可能だとは思わないpreg_match('/([^\\]\")/', $str)

+2

これは間違っています。 '\\" 'はエスケープされていない引用符で、リテラルのバックスラッシュが前に付いていますが、この正規表現にはマッチしません。 – bukzor