#記号は/と何が違うのですか?パターンパラメータのpreg_replace関数の#と/の違いは?
$output = preg_replace('#[^A-Za-z0-9]#i', '', $input);
$output = preg_replace('/[^A-Za-z0-9]/i', '', $input);
/[^ A-Za-z0-9] /?の後の文字は何ですか。
また、^は何を意味していますか?
#記号は/と何が違うのですか?パターンパラメータのpreg_replace関数の#と/の違いは?
$output = preg_replace('#[^A-Za-z0-9]#i', '', $input);
$output = preg_replace('/[^A-Za-z0-9]/i', '', $input);
/[^ A-Za-z0-9] /?の後の文字は何ですか。
また、^は何を意味していますか?
一部の言語では、正規表現のパターン部分を開始または終了する文字のタイプは関係ありません。先頭と末尾が同じである限り(これはPerlからのホールドオーバーです間違いなく最初の偉大な正規表現言語)。 PHPはこの考え方に従うので、#
と/
は同等です。
i
=「この検索大文字小文字を区別しません作る」[^...]
=角括弧(^基本的には、この文脈で「除外」の意味)との間にすべてを除外する。正規表現hereについてたくさん学ぶことができます。
これは別の区切り文字です。あなたの正規表現で多くのスラッシュを使用するつもりなら、毎回それをエスケープする必要はないので、デリミタとしてハッシュ(または別の文字を選択することができます)を割り当てます。エスケープする必要はありません。
正規表現の最後にあるi
は、一致を実行するときに大文字と小文字を無視するようにPHPに指示する修飾語です。文字「A
」と「a
」は同等です。 i
修飾語を使用する場合、A-Za-z
を使用する必要はありません。の一部としてa-z
が含まれているためです。
キャラリスト(キャラクタリストの最初の文字として使用される場合、キャラット(^
)は、でないものをそのリスト内のと一致させることを意味します)。だから[^ abc]はと一致しますが、の文字はa
,b
、c
です。
ありがとう、私は2つの最善の答えを与えることを望む – user784637
私より先に+53秒です! +1;) – sdolgy
きれいな答えをありがとう、あなたの腕の中でとてもかわいい赤ちゃん – user784637
そう...本当に古い絵です。彼は現在3歳以上で、妹がいますが、私は両方の写真がありません(私は習慣として写真を撮っていません)。 – cwallenpoole