Regex Perl:为什么这种模式匹配?

Regex Perl:为什么这种模式匹配?,regex,perl,Regex,Perl,为什么下面的模式匹配成功?我错过什么了吗 $a="pattern"; if($a =~ /[0-9]*/){ print "Contains\n"; } *量词匹配0或更多。而且模式与零位数完全匹配 您可能希望使用+,这将表示匹配1次或多次 引用自perldoc perlre的: 量词 可识别以下标准量词: *匹配0次或更多次 +匹配1次或更多次 ? 匹配1或0次 {n} 精确匹配n次 {n,}至少匹配n次 {n,m}至少匹配n次但不超过m次 量词与0或更多匹配。而且

为什么下面的模式匹配成功?我错过什么了吗

$a="pattern";
if($a =~ /[0-9]*/){
   print "Contains\n";
}

*
量词匹配0或更多。而且模式与零位数完全匹配

您可能希望使用
+
,这将表示匹配1次或多次

引用自perldoc perlre的

量词
可识别以下标准量词:
*匹配0次或更多次
+匹配1次或更多次
?           匹配1或0次
{n} 精确匹配n次
{n,}至少匹配n次
{n,m}至少匹配n次但不超过m次

量词与0或更多匹配。而且模式与零位数完全匹配

您可能希望使用
+
,这将表示匹配1次或多次

引用自perldoc perlre的

量词
可识别以下标准量词:
*匹配0次或更多次
+匹配1次或更多次
?           匹配1或0次
{n} 精确匹配n次
{n,}至少匹配n次
{n,m}至少匹配n次但不超过m次

使用
*
作为量词表示零个或多个实例。在这种情况下,它在目标字符串的
p
之前的位置与零匹配


要匹配至少一个数字,请使用
+
量词。

使用
*
作为量词表示零个或多个实例。在这种情况下,它在目标字符串的
p
之前的位置与零匹配


要匹配至少一个数字,请使用
+
量词。

愚蠢的我。忘记了*的基本含义。谢谢!我真傻。忘记了*的基本含义。谢谢!