我正在尝试将正则表达式写入应用程序的regex字段以捕获返回代码编号,但我需要转换匹配的文本而不进行替换(替换)匹配。
现在正常的正则表达式是:
RETURN=(?<code>[0-9]+)
其中,在Perl中,RETURN=123
产生:
say $+{code}; # 123
现在我需要这个字符串RETURN=MAX
来产生值999
:
say $+{code}; # 999
但我有一些限制:我无法触及背后的代码,也不能使用替换模式s///
。它必须是一个简单的(Perl 5.14风格)正则表达式匹配,即,将成为$input_data =~ /$my_regex/
;
有没有办法编写正则表达式,以便将捕获的值MAX
转换为不同的内容,例如999
?
答案 0 :(得分:0)
很容易就像馅饼一样。
只需将$ + {code}复制到本地变量中,然后在本地而不是系统变量上运行
RETURN=(?<code>[0-9]+)
say $+{code}; # 123
my $code = $+{code};
say $code; # 123
$code = 999;
say $code; # 999