【发布时间】:2014-03-01 15:26:45
【问题描述】:
我遇到了 Perl 的行为,我无法解释:
#!/usr/bin/perl
use strict;
use warnings;
my $number = -10;
if ($number =~ /\d+/) {
print $number;
}
这会打印出-10,尽管事实上,
- \d代表[0-9]
为什么一开始就忽略减号?
【问题讨论】:
-
\d并不总是与[0-9]相同,请参阅stackoverflow.com/q/890686/372239 -
@M42 那么,\d 还可以匹配 Unicode 表中的希伯来语、亚美尼亚语和其他非标准数字?
-
@M42 哪个 perl 版本开始使用
/a修饰符? -
@mpapec:我认为是 5.14
-
/\d+/仅表示“字符串是否包含一个或多个数字的序列?”您的字符串包含两位数字,因此匹配。您期待什么替代行为?