关于字符最大长度的Perl正则表达式

时间:2013-02-07 15:46:56

标签: perl expression maxlength

我正在尝试为给定字符串允许的最大长度(在特定接口中)创建perl验证表达式

我尝试了/.{0,5}//^.{0,5}&/我注意到在很多类似的情况下使用过,但似乎任何输入的字符串(甚至低于20个字符)都会失败......

我搜索过&测试了许多方法,但没有结果。

我最近尝试过:

[[:alpha:]]\{0,20\}

但行为很奇怪.. 你能帮我么?我很有兴趣阻止用户在表单中输入20个或更多字符 谢谢!

3 个答案:

答案 0 :(得分:2)

不使用正则表达式,请尝试使用length()函数。

示例:

my $max = 4;
my $input = "qwerty";
if (length($input) < $max) {
    print "[$input] is less than $max\n";
} else {
    print "[$input] is more or equal than $max\n";
}

perldoc -f length

答案 1 :(得分:0)

/^.{1,20}$/怎么样?

$ echo "12345678901234567890123" | perl -nle "print if /^.{1,20}$/"

$ echo "12345678901234567890" | perl -nle "print if /^.{1,20}$/"
12345678901234567890

答案 2 :(得分:0)

如果从命令行读取输入,请尝试此操作。

#!/usr/perl/bin -w

use strict;

my $input;
while (1) {
    $input = <>;
    if(length($input) < 20) {
        print "perfect\n";
    } else {
        print "Exceeded 20 characters\n";
        exit(1);
    }
}