也许这是一个愚蠢的问题,但是:
我运行perl 5.8.8,我需要用"0“替换前面有数字的任何下划线。
运行:
$var =~s /(\d)_/$10/g; 显然不会像10美元那样被解释为...好吧..。$10,而不是"$1后面跟着0“
此外,作为运行perl5.8,我不能
$var=~s/(?<n1>\d)\_/$+{n1}0/g;有什么想法吗?
提前感谢
发布于 2010-08-25 21:22:23
就像在各种Unix shell中一样,您可以将变量名括在大括号中以消除歧义。
$var =~s /(\d)_/${1}0/g;或者,您可以使用回溯来防止数字成为匹配的一部分:
$var =~s /(?<=\d)_/0/g; 发布于 2010-08-25 21:31:17
这也是一个零宽度回溯断言的好地方:
$var =~ s/(?<=\d)_/0/g;它查找一个数字,而不实际将该数字插入到匹配的文本中。
发布于 2010-08-25 21:22:09
$var =~s/(\d)_/${1}0/g;
https://stackoverflow.com/questions/3566216
复制相似问题