Java正则表达式只接受带有.ca域名的电子邮件

时间:2013-05-05 04:32:14

标签: java regex

我对正则表达式真的很糟糕。任何人都可以帮助我构建一个只接受电子邮件完成.ca的java正则表达式。

我尝试过像

这样的东西
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*
      @[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.ca$;

由于

2 个答案:

答案 0 :(得分:1)

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

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

为了让你立即行动,这应该有效:

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

答案 1 :(得分:0)

你可以尝试一下:

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