私はpreg_replace
と苦労しています。本当に誰かが私のエラーを見つけられることを願っています。正規表現は私のアキレス腱です。PHPでpreg_replaceを取得したエスケープ
私はそう、同様の質問を検索し、preg_quote
を見つけましたが、私は、私は私の置換文字列の非正規表現の部分における任意の正規表現文字を持っていると信じていません<img src="http://mydomain/some/path/123.jpg"></img>
で{{123.jpg}}
のような文字列を交換しようとしています私は迷っている。
は、ここで私がしようとしているものです:
function replace($article_id,$text){
$pattern = '/\{\{(.*?)\}\}/';
$replacement = '<img src="'.URL_CONSTANT.'articles/'.$article_id.'/'.'${1}'.'"></img>';
return preg_replace($pattern, $replacement, $text);
}
私はパターンが一致していることを確認することができますが、それが適切に交換していません。私は問題が${1}
の置換の前に最終的な/
に関連すると思うが、私はそれが特別な正規表現のキャラクターだとは思わないので、なぜ私は見ない。
ご協力いただきましてありがとうございます。
編集:この問題は私の表現と無関係であることがわかりました。私の表現が適切に形成されたことを確認するのを手伝ってくれた皆様に感謝します!
[私にとってうまくいくようです](http://codepad.org/KLNt2JSr)どのような交替問題が発生していますか? – alex
@alex興味深い。テストする時間をとってくれてありがとう。テキストが再解釈されたときに問題が発生するのだろうかと思います。私はCKEditorへの入力を傍受し、画像のショートカットを完全な画像タグで置き換えています。 –
http://codepad.orgで問題を再現できる場合は、リンクしてください。もう一度見ていきます。また、 '{$ 1}'は後方参照には問題ありませんが、あいまいさも軽減します。 – alex