声明从字符串
问题描述:
一个变量我想包括以下字符串的Perl脚本价值为$的QName:声明从字符串
队列(SYSTEM.SELECTION.VALIDATION.QUEUE)
所以我试着包括SYSTEM.SELECTION.VALIDATION.QUEUE
成$QName
,如下代码:
my ($QName) = /QUEUE\((\w+)\)/;
print "$QName \n";
然而,该代码不能成功地产生输出。
输出应该是:
SYSTEM.SELECTION.VALIDATION.QUEUE
答
你需要在你的模式中添加点:
my ($QName) = /QUEUE\(([\w.]+)\)/;
# ^^^
# |
# `--You're missing this dot:
# The "SYSTEM.SELECTION.VALIDATION.QUEUE" value comprises letters AND DOTS
的'\ w'不符点。你可以用括号中的所有内容匹配'[^()]',一个否定的括号内的字符类匹配任何字符,但匹配任何字符('和')':my($ QName)=/QUEUE \(([^()] + )\;' –