如何在一行文本中正则化电子邮件地址

本文关键字:文本 一行 正则化 电子邮件地址 | 更新日期: 2023-09-27 18:21:32

我有一行文本(字符串),其中包含一些电子邮件地址。我知道在电子邮件regex上有大约一百万条帖子,但在这个问题上,我对电子邮件地址的定义只是一个字符串,中间没有空格,并且只包含一个"@"符号。

懒惰的狗跳过fence@quick棕色狐狸的房子。当我需要一个示例text_I/just@randomly.think要键入的单词数。

这将使我获得fence@quicktext_I/just@randomly.think作为有效匹配。

我尝试了new Regex(@"'b.*@.*'b"),但它匹配了整行文本,尽管它声称是单词边界元字符?

事实上,我用new Regex(@"'w+([-+.]'w+)*@'w+([-.]'w+)*'.'w+([-.]'w+)*")实现了它,但有更简单的方法吗?编辑:这仍然遗漏了一些无效的电子邮件地址。

如何在一行文本中正则化电子邮件地址

您应该使用此regex

'S+@'S+

'S将匹配任何不是空间的字符

但即使是空格也是电子邮件中的有效字符。请谨慎使用。。


看看这些文章

  • 停止使用复杂正则表达式验证电子邮件地址

  • 简单解释电子邮件地址格式(RFC 822)

  • 电子邮件地址格式

  • RFC 822标准

底线是,这些标准从未得到遵守,所以最好还是坚持下去^[^@]+@[^@]+$