2017-05-02 12 views
-2

私は間違いをどこにしているのか分かりません。助けてください。preg_match_all():コンパイルに失敗しました:行方不明

preg_match_all('`(?:[^,"]|"((?<=\)"|[^"])*")*`x', $string, $result);   

正しい行は何ですか?

+0

あなたは脱出してきました')' '(?<= \)'の中にあるので、閉じ括弧を一致させない – Thamilan

+0

私はバックスラッシュを追加してエスケープしようとしましたが、助けにはなりませんでした。 – naan

+1

バックスラッシュをエスケープするには、¥¥だけでなく\\\\を使用する必要があります。この[SO Answer](http://stackoverflow.com/a/4025505/5447994)は役に立ちます – Thamilan

答えて

1

あなたはバックスラッシュをエスケープしませんでした:

preg_match_all('`(?:[^,"]|"((?<=\\)"|[^"])*")*`x', $string, $result); 

それとも、あなたはすべてのバックスラッシュにマッチする予定がない場合、あなたはそれを完全に省略することがあります。

preg_match_all('`(?:[^,"]|"((?<=)"|[^"])*")*`x', $string, $result); 
+0

私は最初の行をしようとしましたが、バックスラッシュを追加することを意味しましたが、2行目が助けになりましたが、それは助けになりませんでした。ありがとう – naan

関連する問題