从string声明一个变量

时间:2017-04-21 10:24:01

标签: regex perl

我想在Perl脚本中将以下字符串的值包含在$ QName中:

  

QUEUE(SYSTEM.SELECTION.VALIDATION.QUEUE)

所以我尝试将SYSTEM.SELECTION.VALIDATION.QUEUE包含到$QName中,如下面的代码:

my ($QName) = /QUEUE\((\w+)\)/;
print "$QName \n";

但是,此代码无法成功生成输出。

输出应为:

  

SYSTEM.SELECTION.VALIDATION.QUEUE

2 个答案:

答案 0 :(得分:3)

您需要在模式中添加点:

my ($QName) = /QUEUE\(([\w.]+)\)/;
#                      ^  ^^
#                         |
#                          `--You're missing this dot:
# The "SYSTEM.SELECTION.VALIDATION.QUEUE" value comprises letters AND DOTS

演示:https://ideone.com/L4FESo

答案 1 :(得分:0)

你想要实现的目标并不是很清楚,但我想你想要:

$input_string = 'QUEUE(SYSTEM.SELECTION.VALIDATION.QUEUE)';
my ($QName) = $input_string =~ /QUEUE\((.+?)\)/;
print $QName,"\n";

<强>输出:

SYSTEM.SELECTION.VALIDATION.QUEUE