すべてのメールアドレスに一致するようにこの正規表現を書き直すにはどうすればよいですか。ただし、 「 hotmail、gmail、yahoo
」
を含むものには一致しません。これまで私はこれを書いた:
^([a-zA-Z0-9_\-\.]+)@(?<!hotmail|gmail|yahoo)((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
を削除してネガティブ先読みをネガティブ先読みに<
変更し、次のように再配置します
^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(?!hotmail|gmail|yahoo)(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
上記は、"hotmail,gmail and yahoo"
がに直接続くことを前提としてい@
ます。
短い同等物:
@"^([\w.-]+)@(\[(\d{1,3}\.){3}|(?!hotmail|gmail|yahoo)(([a-zA-Z\d-]+\.)+))([a-zA-Z]{2,4}|\d{1,3})(\]?)$"