给定场景的正则表达式
Regular Expression for given scenario
我已经有一个来自 RFC 2822 格式的电子邮件地址正则表达式
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
但想修改它以包含以下一些新条件:
- 至少一个句号
- 至少一个@字符
- 没有连续的句号
- 不得 start/end 包含特殊字符,即只应 start/end 包含 [0-9a-zA-Z]
- 仍应遵循正则表达式规则的 RFC 规范。
目前上面的允许电子邮件以特殊字符开头。它还允许两个连续的句号(域名除外,这很好,所以 test@test..com 失败但正确)。
谢谢。
^[a-zA-Z0-9]+(?:\.?[\w!#$%&'*+/=?^`{|}~\-]+)*@[a-zA-Z0-9](?:\.?[\w\-]+)+\.[A-Za-z0-9]+$
没有 ..
和至少 1 .
和 1 @
.
还有 starts/ends 和 letters/numbers.
^
(开始)和$
(结束)只是为了匹配整个字符串,而不仅仅是一个子字符串。但是您可以用单词边界 \b
.
替换它们
特殊字符未硬编码的替代方案:
^(?!.*[.]{2})[a-zA-Z0-9][^@\s]*?@[a-zA-Z0-9][^@\s]*?\.[A-Za-z0-9]+$
我已经有一个来自 RFC 2822 格式的电子邮件地址正则表达式
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
但想修改它以包含以下一些新条件:
- 至少一个句号
- 至少一个@字符
- 没有连续的句号
- 不得 start/end 包含特殊字符,即只应 start/end 包含 [0-9a-zA-Z]
- 仍应遵循正则表达式规则的 RFC 规范。
目前上面的允许电子邮件以特殊字符开头。它还允许两个连续的句号(域名除外,这很好,所以 test@test..com 失败但正确)。
谢谢。
^[a-zA-Z0-9]+(?:\.?[\w!#$%&'*+/=?^`{|}~\-]+)*@[a-zA-Z0-9](?:\.?[\w\-]+)+\.[A-Za-z0-9]+$
没有 ..
和至少 1 .
和 1 @
.
还有 starts/ends 和 letters/numbers.
^
(开始)和$
(结束)只是为了匹配整个字符串,而不仅仅是一个子字符串。但是您可以用单词边界 \b
.
特殊字符未硬编码的替代方案:
^(?!.*[.]{2})[a-zA-Z0-9][^@\s]*?@[a-zA-Z0-9][^@\s]*?\.[A-Za-z0-9]+$