【问题标题】:Regular Expression E-Mail (Java)正则表达式电子邮件 (Java)
【发布时间】:2015-12-03 06:18:34
【问题描述】:

我知道有很多关于正则表达式和电子邮件结合的问题。但它总是关于“简单”的电子邮件格式,例如any_mail@domain.com

正如我们在许多网站上看到的那样,开发人员通过“简单的技巧”隐藏了那些标准正则表达式的电子邮件。将@ 隐藏在(at) or [at] 后面。

因此,考虑到电子邮件中 ​​(at) or [at] 的情况,我正在这里寻找一个正则表达式。

我已经在测试这样的东西了:

[a-zA-Z0-9_\\.-]+(@|[[(]at[)]])[a-zA-Z0-9-_\\.]+\\.[a-zA-Z]{2,4}+

关键点是@(at)[at]部分!

我将不胜感激任何解决方案:)

编辑:: 我希望这个正则表达式能找到像any_mail(at)domain.com 这样写的电子邮件

【问题讨论】:

  • [[(]at[)]] 你认为[..] 会做什么?
  • [ [ ( ] -> [ or ( at -> at [ ) ] ] -> ) or ]
  • 不,[]是字符集中的特殊字符,可以用来创建内部字符集。例如[a-z&&[^c-f]] 将创建[a-z][^c-f] 的交集。换句话说,[[(]] 中的[(] 仅代表(,而不是[(]。您应该使用非常清晰且易于更改的 Bohemians 解决方案。

标签: java regex email


【解决方案1】:

(@|[\\[\\(]at[\\)\\]])

实际上,这将匹配abc(at]example.com

【讨论】:

    【解决方案2】:

    正则表达式片段匹配任何一个:

    • @
    • [at]
    • (at)

    术语周围有可选空格:

    " *(@|\\(at\\)|\\[at\\]) *" 
    

    【讨论】:

      猜你喜欢
      • 2012-01-02
      • 2011-01-16
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多