この記事では、PHP で正規表現を使用して電子メール アドレス (EMail) を照合するときに発生する問題とその解決策を紹介します。困っている友達は参考にしてください。
phpの正規表現は電子メールと一致します。コードは次のとおりです: リーリー上記の出力はなぜ合法なのでしょうか? {2,10}ここには 2 ~ 10 桁しか入力できませんが、上記のメール アドレスは 10 桁を超えています。 この正規表現は一致する可能性があり、この部分「545454545k@qq.com」と一致します。 1412424545645454 の最初の部分は一致しないため、依然として合法です。 正しいマッチングは次のように変更できます: $a='/^([w._]{2,10})@(w{1,}).([a-z]{2,4})$/';通常のルールに注意してください: /([w._]{2,10})@(w{1,}).([a-z]{2,4})/ これにはアサーションがありません。つまり、文字列内に一致する部分がある限り一致します。したがって、{2,10} は 2 ~ 10 桁のみと一致しますが、文字列全体と一致するわけではありません。一部として一致します。 文字列全体が一致するかどうかを判断するには、アサーションを使用する必要があります。 ^ $ など /^([w._]{2,10})@(w{1,}).([a-z]{2,4})$/ ^$ が先頭と末尾に追加されることに注意してください完璧なコードは次のとおりです: りー |