カスタム文字のエスケープを行いたいのですが、その特殊文字がまだ前に付いていない場合にのみ、一部の文字の前に特殊文字を付ける必要があります。正規表現の置き換えが必要になると思います。それを達成する最も簡単な方法は何ですか?私は否定的な後読みアサーションで何かを試しましたが、結局何もありませんでした。
abc
編集: chars のいずれかを でエスケープしたいと想像し\
てdebby
ください。この例はそれほど創造的ではないと思いますが、それでも私が言いたいことを説明していると思います(まだエスケープされていないエスケープ文字)de\b\by
da\bby
d\a\b\by
EDIT2:まあ、私が実際にやろうとしているのは、
([A-Za-z]+)/([A-Za-z]+)/([A-Za-z]+)
の中へ
([A-Za-z]+)\/([A-Za-z]+)\/([A-Za-z]+)
文字列番号1のスラッシュは、たとえば、ある種の区切り文字です(後でもっと多くのスラッシュが必要になると思いますが、同時にエスケープしたい.
と,
思います)、それ\
を使用するにはエスケープする必要があります別の(より単純な)パターン。私は試しました(2番目の引数についてはわかりませんが、それは私が信じている問題ではありません)
preg_replace("/(?<!\\)([\/])/", "\\$0", $string);
はどこ$string
ですか([A-Za-z]+)/([A-Za-z]+)/([A-Za-z]+)
。運がない。
私は今それを明確にしたことを願っています
解決:
preg_replace("/(?<!\\\\)[\/]/", "\\\\$0", $string);
角括弧内に、エスケープする文字を入れます。