我已经尝试解决这个问题将近一个小时了,如果没有任何帮助或解释,我看不到自己在这方面取得了更多进展。我以前使用过正则表达式,但只有那些非常简单或已经制作好的。
这一次,我试图弄清楚如何编写一个实现以下目标的正则表达式:
电子邮件地址必须包含一个 @ 字符和至少一个点 (.) 在 @ 字符后的至少一个位置。
到目前为止,这是我所能解决的所有问题,并且它仍然匹配电子邮件地址,例如,具有多个 @ 符号的电子邮件地址。
.*?@?[^@]*\.+.*
如果你能告诉我如何构造一个正则表达式来检查单个 @ 和至少一个句号,在 @ 之后一个或多个空格,这将很有帮助。如果您可以分解正则表达式并解释每一位的作用,那将非常有帮助。
我现在想让它保持简单,所以它不必是一个完整的超级准确的电子邮件验证表达式。
原文由 Dog Lover 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 ClasG 的评论的帮助下,我现在有一个相当简单和合适的正则表达式来解决我的问题。为了任何学习正则表达式的人将来可能会遇到这个问题,我将在下面分解表达式。
表达式:
^[^@]+@[^@]+\.[^@]+$
^
匹配字符串的开头(如果是多行则匹配行)[^@]
匹配任何不在这个集合中的字符(即不是“@”)+
匹配其中的一个或多个@
匹配“@”字符[^@]
匹配不在这个集合中的任何字符+
匹配一个或多个\.
匹配“.” (句号)字符(反斜杠转义句号)[^@]
匹配任何不在这个集合中的字符+
匹配一个或多个$
匹配字符串的结尾(如果是多行则匹配行)用简单的语言: