Java Regex指定长度

时间:2014-01-07 06:40:31

标签: java regex

请在下面找到我用来验证电子邮件地址的正则表达式。这工作正常。

^[-!#$%&\\'*+\\\\./<MORE_REGEX_HERE>^_`a-z{|}~]+$

现在我想在这个正则表达式中添加长度检查,例如电子邮件地址的最大长度为60.所以我尝试了类似下面的内容

^([-!#$%&\\'*+\\\\./<MORE_REGEX_HERE>^_`a-z{|}~]+){1,60}$

但它不起作用。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

如果有效,你可以找到以下解决方案: -

可能是因为您在一个

中有多个匹配的字符串

^ [! - 。#$%&安培; \'* + \\] + [^ _`A-Z {|}〜] + $

在这种情况下你不能使用^ [ - !#$%&amp; \'* + \\。] + [^ _` a-z {|}〜] {1,60} $

匹配整个字符串,但它只匹配字符串的第二部分,在这种情况下你需要使用下面的正则表达式: -

[^[-!#$%&\\'*+\\\\.]+[<MORE_REGEX_HERE>^_`a-z{|}~]+$]{1,60}

尝试它现在应该工作。

答案 1 :(得分:0)

如果您想要一种验证电子邮件的有效方法,请尝试以下方法: Good solution

使用{n,m}匹配n(最小值)和m(最大值)字符。

答案 2 :(得分:0)

使用lookahead断言:

^(?=[-!#$%&\\'*+\\\\./<MORE_REGEX_HERE>^_`a-z{|}~]+).{1,60}$