gpt4 book ai didi

regex - 如何使用 Perl 进行基于计算的替换?

转载 作者:行者123 更新时间:2023-12-01 07:43:06 25 4
gpt4 key购买 nike

我正在尝试编写一个 perl 脚本来搜索文本文件,查找所有十进制数字,并通过一些缩放因子对其进行修改。到目前为止,我已经成功地用正则表达式提取了数字:

open(INPUT, $inputPath) or die "$inputPath cannot be opened.";

while ($thisLine = <INPUT>) {
while ($thisLine =~ m/(-*\d+\.\d+)/g) {
if(defined($1)) {
$new = $scalingFactor*$1;
print $new."\n";
}
}
}

close (INPUT);

但是,我还没有弄清楚如何将新值重新插入到文件中。我尝试使用 s/(-*\d+.\d+)/$scalingFactor*$1/g 进行替换,但是这当然插入了 $scalingFactor 的字符串表示形式评估表达式。

我是 perl 新手,因此我们将不胜感激。提前致谢,

-丹

编辑:解决方案(基于 Roman 的回复)

while ($thisLine = <INPUT>) {
$thisLine =~ s/(-*\d+\.\d+)/$scalingFactor*$1/ge;
prinf OUTPUT $thisLine;
}

另外,肖恩的解决方案对我也很有效。谢谢大家!

最佳答案

s/(-*\d+.\d+)/$scalingFactor*$1/ge

(注意最后的e)

关于regex - 如何使用 Perl 进行基于计算的替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5256306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com