正则表达式的最小和最大长度

Minimum and maximum length in a regular expression

本文关键字:正则表达式      更新时间:2023-09-26

我使用以下正则表达式来验证电子邮件:

^'w+([-.]'w+)*@'w+([-.]'w+)*'.'w+([-.]'w+)*$

现在我想修改这个正则表达式,使用{5,100}来验证电子邮件的长度。我该怎么做呢?

^(?=.{5,100}$)'w+([-.]'w+)*@'w+([-.]'w+)*'.'w+([-.]'w+)*$

我使用的是零宽度向前看。它不会使用字符,因此您可以使用表达式重新检查它们。

小心。这是一个相对弱的表达式,甚至匹配user@server.com.net.org。电子邮件正则表达式已经在许多其他问题中讨论过了,比如这个问题。

检查字符串的长度通常可以在您正在使用的语言/工具中完成。在某些情况下,这可能会更快。作为一个示例(在Perl中):

my $len = length $str;
if ($len < 5 || $len > 100) {
    # Something is wrong
}