2017-01-12 9 views
-1

にこのコードが一致しません。 何らかの理由で、文字列"single quoteの場合、1つの引用符と1つのエスケープ引用符がエコーされますが、同じ文字列のhttp://regexr.comで実行された場合、パターン/\\\"/imは何も一致しません。PHPのpreg_match_allはエスケープ引用

+0

'「\」" 'バックスラッシュが含まれていないかを確認し、[このデモを確認してください。 PHPの文字列リテラルでバックスラッシュを宣言する](http://ideone.com/c2In3Z) –

+0

[正規表現で\ [\ \]をエスケープする正しい方法は?](http://stackoverflow.com)/question/11044136/right-way-to-escape-backslash-in-php-regex) – 4castle

答えて

0

編集:

オクラホマので、まず、あなたは戻り値としてpreg_match_allからのカウントを取得しています。 preg_match_allは配列(あなたのケースに1つの要素を含む)を返すので、今あなたがそれをやっている方法は、常に1を表示します。

Wiktor第Stribiżewが述べたように、あなたも

preg_match_all("/\\\\\"/im", $string, $m); 

をあなたの正規表現を調整する必要があります私はあなたの質問を理解していることを100%確実ではないが、私はそれに答えるようにしようとするでしょう。

$string変数に\"が表示されると思われますか?

しかし、そうではありません。 PHPは文字列を保存する前にそのバックスラッシュを削除します。リテラル"を取得したいと思うPHPのヒントだけで、ここで文字列を終了しようとしているわけではありません。場合

あなたが\"を取得する(何らかの理由で)したい、あなたはこのようなコードを使用する必要があります。

$string = "\\\"single quote"; 
+0

いいえ、$文字列は完璧で、一重引用符でなければなりません –

+0

@WearyAdventurerそのコードから何を期待していますか? 1つの引用符とゼロのエスケープ引用符を表示する必要がありますか? –

+0

はい、1つの引用符と0つのエスケープ引用符。 –

関連する問題