if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]$", $email)) {
echo "あなたのメールは予備チェックに合格しました";
?> この文では、まず、非常にわかりやすいエレギ関数が適用されています。この本を探すだけで、説明が得られます:
構文: int ereg(string pattern, string string, array [regs]);
戻り値: 整数/配列
この関数は、パターン ルールを使用して文字列 string を解析および比較します。 。
比較結果によって返された値は配列パラメータ regs に配置されます。regs[0] の内容は元の文字列 string、regs[1] はルールに準拠する最初の文字列、regs[2] はその文字列です。ルールに準拠する 2 番目の文字列など。パラメータ regs を省略した場合は、単純に比較され、見つかった場合は戻り値が true になります。
理解しにくいのは、前の正規表現です: ^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.) +[a-z] $
「次の文字が先頭になければなりません (^)」、「文字は、a から z まで、「_」、「.」、「-」に含まれている必要があります。 0 ~ 9 の範囲の文字、数字 ([_.0-9a-z-])"、"前の文字が少なくとも 1 回出現する (+)"、@、"文字列は a から Starts までの文字列で構成されますz の範囲の文字、0 ~ 9 の範囲の数字、その後に「-」に含まれる少なくとも 1 つの文字、a ~ z の範囲の任意の文字、0 ~ 9 の範囲の任意の数字、で終わる文字. (([0-9a-z][0-9a-z-]+.))"、"前の文字が少なくとも 1 回出現します (+)"、"a から z までの文字は 2 ~ 3 回出現し、で終わる ([a-z]$)"
複雑ですよね。だからこそ、人々は正規表現を使用します。