私は既存の電子メール正規表現を変更して、文字の間にハイフンを1つだけ挿入できるようにしようとしています。regexが最初のグループの一部を拒否する(注文)
^([\w]+(?:\.[\w]+)*(?:\-[\w]+)*){1,64}@((?:[\w]+\.)*\w[\w]{0,64})\.([a-z]{2,7})$
私は順番に問題を抱えている:私は最初のハイフンを使用して、ドットた場合、正規表現は、ドットの前の文字の左側にあるすべてのものを無視します:
[email protected]
- >my-coo
[email protected]
(空白は気にしないでください)。
最初の2つのグループの最大長の制限は64ですが、64文字を超える文字を置くと正しく動作しません。 3番目のグループの最大長は7で、それ以上の場合は検証されません。
あなたは一例として取ることができ:a[email protected]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aa
は
と
aa[email protected]aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aa
は悪い結果では良い結果です。
最初の例の前に64 a
秒を持っていると@
及び第二の例は、65 a
の
https://regex101.com/r/yO1xH7/3
を持っていた後、私はまた@
後に同じことをしたいのですが、それはもっと複雑です私は思ったよりも。
提案がありますか?ありがとう。
あなたが望む長さの限界を定義すれば、私はあなたを助けることができます –
私はそれを単語で定義することを意味します。たぶん私に正規表現を渡す電子メールの長すぎる例とそれをする必要があります –
あなたの正規表現を何度も見たことがあります。私は**人間**言語ではなく、コード言語で説明する必要があります。私に予想される結果を与え、現在の間違った結果は何か。あなたの質問の投稿を更新し、それが完了したら教えてください。 –