在Perl中组合变量和正则表达式

时间:2017-07-27 20:38:07

标签: regex perl concatenation

我有代码:

$TEMP =~ s/\#NAME\#/$customerName/g;

我使用Regex将#NAME#替换为$customername中的值。我想要做的是将一个变量附加到NAME的末尾。

所以我想做点什么:

$TEMP =~ s/\#NAME . $appendValue\#/$customerName/g;

所以它基本上是:

$TEMP =~ s/\#NAME_1\#/$customerName/g;

这会有效还是有正确的方法来解决这个问题?

测试案例:

  • 您好#NAME#
  • 这仅适用于#NAME#

1 个答案:

答案 0 :(得分:3)

模式插入变量,因此不需要连接运算符:

$TEMP =~ s/#NAME$appendValue#/$customerName/g;

但是,您可能需要保护变量中的特殊字符,因此请使用\Q...\E

$TEMP =~ s/#NAME\Q$appendValue\E#/$customerName/g;

#在正则表达式中并不特殊,因此不需要反斜杠(但它不会受到伤害)。