【发布时间】:2014-02-19 06:46:02
【问题描述】:
此条件必须匹配 telco_imac_city 或 telco_hier_city。当它成功时,我需要提取匹配值的第二个下划线。
我可以用这段代码让它工作
if ( ($value =~ /(telco_imac_)city/) || ($value =~ /(telco_hier_)city/) ) {
print "value is: \"$1\"\n";
}
但如果可能的话,我宁愿使用这样的单个正则表达式
$value = $ARGV[0];
if ( $value =~ /(telco_imac_)city|(telco_hier_)city/ ) {
print "value is: \"$1\"\n";
}
但如果我传递值 telco_hier_city 我会在测试第二个值时得到这个输出
Use of uninitialized value $1 in concatenation (.) or string at ./test.pl line 19.
value is: ""
我做错了什么?
【问题讨论】: