【问题标题】:Java regex accepting only email with .ca domain [closed]Java 正则表达式仅接受带有 .ca 域的电子邮件 [关闭]
【发布时间】:2013-05-05 04:32:14
【问题描述】:

我真的很不擅长正则表达式。谁能帮我建立一个只接受以.ca结尾的电子邮件的java正则表达式。

我试过类似的东西

^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*
      @[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.ca$;

谢谢

【问题讨论】:

标签: java regex


【解决方案1】:

本着教你如何钓鱼的精神......这些都与你尝试的问题直接相关,可能会帮助你改进。

  • 我在您的正则表达式代码中看到的一个趋势是您正在转义. 以使用\\. 使其文字化。通过双重转义它,您是说您想要一个文字斜线后跟一个单字符通配符。所以应该是\. 我看到你也为其他特殊字符这样做。
  • 您可能更容易将这些特殊字符写成像[.] 这样的类格式。这也意味着文字点并且不使用任何转义。
  • 您不需要转义字符类中的特殊字符。我想你这样做是为了\\+
  • 你可以把[A-Za-z]写成[A-z]更简单
  • [0-9] 可以写成 [\d]
  • [_A-z0-9] 可以写成[\w]
  • 你错过了一个结束)

为了让你立即开始,这应该可以:

([\w-\.]+)@((?:[\w]+\.)+)(ca)

【讨论】:

    【解决方案2】:

    你可以试试这个:

    ([\w-\.]+)@((?:[\w]+\.)+)(ca)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-23
      • 2017-07-05
      • 1970-01-01
      • 2012-01-02
      • 2015-12-03
      相关资源
      最近更新 更多