1

この発言見た

$name = ereg_replace("[^A-Za-z0-9.]", "", $name);

[^A-Za-z0-9.]とはどう違い[A-Za-z0-9.]ますか?

正規表現に関する私の理解に基づいて、[]は function の置換に有効なすべての文字を含めるために使用されますereg_replace

^では、に含める目的は何[]ですか?

ありがとうございました

4

1 に答える 1

11

^文字クラス内のイニシャルは、文字クラス[…]内で記述されている文字セットを反転します。while[A-Za-z0-9.]で説明されている文字セットの 1 文字と一致しA-Za-z0-9.、 で説明[^A-Za-z0-9.]されている文字の 1 つを除く他のすべての文字と一致しA-Za-z0-9.ます。これらの他の文字は、文字列が定義されている基本文字セットによって異なります。

そのため、 、、またはの[abc]いずれかに一致し、、、および以外の任意の文字に一致します。サンプル コードは、 で説明されていない文字をすべて削除します。の文字だけが残ります。abc[^abc]abc[A-Za-z0-9.][A-Za-z0-9.]

于 2010-08-03T15:34:38.340 に答える