我有数组的值是用户输入,如:
aa df rrr5 4323 54 hjy 10 gj @fgf %d
Run Code Online (Sandbox Code Playgroud)
现在,我想检查数组中的每个值,看它是数字,字母(a-zA-Z)还是字母数字,并将它们保存在其他相应的数组中.
我已经做好了:
my @num;
my @char;
my @alphanum;
my $str =<>;
my @temp = split(" ",$str);
foreach (@temp)
{
print "input : $_ \n";
if ($_ =~/^(\d+\.?\d*|\.\d+)$/)
{
push(@num,$_);
}
}
Run Code Online (Sandbox Code Playgroud)
这有效.同样,我想检查字母和字母数字值
字母数字的例子是: fr43
6t$
$eed5
*jh
Perl支持POSIX字符类,所以你实际上可以这样做:
$string =~ /^[[:alpha:]]+$/;
$string =~ /^[[:alnum:]]+$/;
Run Code Online (Sandbox Code Playgroud)
数字定义不太明确,但Scalar :: Util的Looks_like_number函数可能会按照您的要求执行.