小编gam*_*1t9的帖子

奇数“使用未初始化的值”,正则表达式错误

我正在Windows 10上使用Strawberry Perl5。看来我的正则表达式已损坏,或者regex101不会告诉我真相。我想赶上'num km'。即使我的数组似乎是正确的长度,也经常会说“使用未初始化的值”。

my $string = "^?~ --_ 12 km aéeklwa   32 km |  \|Ä?^ 0 km  23-24 km";

if (@szelmatches = $string =~ /\d+(\-\d+)?\s+km/gm) {
    my $number_of_elements = scalar(@szelmatches);
    print "Elements in the array : $number_of_elements  \n";
}

foreach (@szelmatches) {
    print "$_\n";
} 

Run Code Online (Sandbox Code Playgroud)

输出: 数组中的元素:4
在C:\ misc \ perlek \ wttr \ szel.pl第16行的串联(。)或字符串中使用未初始化的值$ _。

我已经运行define()检查,但似乎我的数组元素都已定义。将\-更改为。{1}有时是可行的,但是这样写很烦人。regex101.com和regexr.com告诉我一切都很好。

我知道您可以将它写得更简单/更短/更好/更快/更精细,但老实说,这应该可行。你们知道我在做什么错吗?

perl

2
推荐指数
1
解决办法
84
查看次数

标签 统计

perl ×1