也许这是一个愚蠢的问题但是:
我运行perl 5.8.8并且我需要替换任何前面带有数字的下划线,"0".
跑步:
$var =~s /(\d)_/$10/g; Run Code Online (Sandbox Code Playgroud)
显然不起作用,因为10美元被解释为......好...... 10美元,而不是"1美元后跟0"
而且,作为运行perl5.8,我做不到
$var=~s/(?<n1>\d)\_/$+{n1}0/g;Run Code Online (Sandbox Code Playgroud)
任何的想法 ?
提前致谢
FMc*_*FMc 11
就像在各种Unix shell中一样,您可以将变量名称括在大括号中以便消除歧义.
$var =~s /(\d)_/${1}0/g;
Run Code Online (Sandbox Code Playgroud)
或者您可以使用后视来防止数字成为匹配的一部分:
$var =~s /(?<=\d)_/0/g;
Run Code Online (Sandbox Code Playgroud)