我想在Perl脚本中将以下字符串的值包含在$ QName中:
QUEUE(SYSTEM.SELECTION.VALIDATION.QUEUE)
所以我尝试将SYSTEM.SELECTION.VALIDATION.QUEUE
包含到$QName
中,如下面的代码:
my ($QName) = /QUEUE\((\w+)\)/;
print "$QName \n";
但是,此代码无法成功生成输出。
输出应为:
SYSTEM.SELECTION.VALIDATION.QUEUE
答案 0 :(得分:3)
您需要在模式中添加点:
my ($QName) = /QUEUE\(([\w.]+)\)/;
# ^ ^^
# |
# `--You're missing this dot:
# The "SYSTEM.SELECTION.VALIDATION.QUEUE" value comprises letters AND DOTS
答案 1 :(得分:0)
你想要实现的目标并不是很清楚,但我想你想要:
$input_string = 'QUEUE(SYSTEM.SELECTION.VALIDATION.QUEUE)';
my ($QName) = $input_string =~ /QUEUE\((.+?)\)/;
print $QName,"\n";
<强>输出:强>
SYSTEM.SELECTION.VALIDATION.QUEUE