0

メールの検証に問題があることは承知しています。「正規表現の壁」を探しているわけではありません。私は単に私がすでに持っている正規表現を修正しようとしています。

^[\p{L}0-9!$'*+\-_]+(\.[\p{L}0-9!$'*+\-_]+)*@[\p{L}0-9]+(\.[\p{L}0-9]+)*(\.[\p{L}]{2,})$

この正規表現は、Unicode 文字を含め、ほとんどの電子メールを検証します。ダッシュを含むドメイン名を扱うのに問題があります。

ダッシュを含めるようにドメイン検証部分を拡張するのを手伝ってもらえますか?

4

1 に答える 1

2

[\p{L}0-9]+の後の両方のインスタンスは、文字グループに追加する@必要があります。先頭と末尾のハイフンを許可しないように拡張することもできますが、式を現実に反映させるほど、正規表現の壁に近づくことになります。-[\p{L}0-9-]+

IDNA (ドメイン部分) も RFC 6531 (ローカル部分) も、Unicode 文字を Letter クラスに制限していないことに注意してください。

于 2013-09-09T12:53:04.380 に答える