http://php.net/manual/en/function.preg-quote.php:なぜ私たちはエスケープする必要がありますか? < >:= - PHPの正規表現では?
正規表現の特殊文字は次のとおりです。 \ + *? [^] $(){ } =! <> | : -
しかしthis pageは特殊文字は、私が最初のページには、PHPの正規表現に、具体的であることを知って[OK]を[ \^$ . | ? * + ()
であることを述べています。しかし、なぜ私たちはエスケープする必要がありますか?!
、<
、>
、:
、=
、-
?
私は<
、>
、-
と!
を脱出し、すべてが完璧に働いているなしpreg_match
を実行しようとしました。
エスケープする必要がない場合、 'preg_quote'がエスケープするのはなぜですか?キャッチは何ですか? – Pacerier
私は少し過激に聞こえる。入力文字列が '(?:)'の場合、 '\(\?:\)'は正しくエスケープされたバージョンになります。 '\(\?\:\)'はおそらく害はないでしょう。多くの正規表現のフレーバーでは、未知のエスケープシーケンスは単に無視されますが、いくつかはエラーを引き起こすので、通常は必要以上にエスケープしないことをお勧めします。 –
はエスケープしないと1つの状況になっても何も失敗する可能性がありますか?またはそれが100%失敗しないと仮定することは安全です。 – Pacerier