将regexp绑定到perl中的参数,我收到以下错误:
syntax error at ./ctime.pl line 23, near "/^\((\d{2}):(\d{2})\)/)"
Execution of ./ctime.pl aborted due to compilation errors.
以下是我尝试绑定它的行:
$_[0] =~ /^\((\d{2}):(\d{2})\)/)/;
我正在尝试匹配parens中的小时/分钟组合,例如(99:99
或(01:24)
。总会有四位数。
答案 0 :(得分:9)
$_[0] =~ /^\((\d{2}):(\d{2})\)/)/;
应该是
$_[0] =~ /^\((\d{2}):(\d{2})\)/;
您不小心在行尾附近复制了两个字符。
PS - 请注意,如果您尝试将$1
或类似内容作为参数传递给包含此代码的函数,则会遇到问题,因为您直接使用$_[0]
。
sub f {
print("$_[0]\n"); # a
print $_[0] =~ /a/ ?1:0,"\n"; # 1
print("$_[0]\n"); # [empty string]
print $_[0] =~ /a/ ?1:0,"\n"; # 0
}
'a'=~/(.)/;
f($1);
答案 1 :(得分:2)
在结束前你还有一个额外的/)
。违规行应该是:
$_[0] =~ /^\((\d{2}):(\d{2})\)/;