我在 Perl 脚本中进行了替换,但我似乎无法正常工作。我在文本文件中有一个字符串,其格式为:
T+30H
Run Code Online (Sandbox Code Playgroud)
字符串 T+30H 必须写入许多文件,并且必须在文件之间更改。它是两位数,有时是三位数。首先我定义变量:
my $wrffcr=qr{T+\d+H};
Run Code Online (Sandbox Code Playgroud)
读取包含字符串的文件后,我有以下替换命令(从文件捕获开始)
@scrptlines=<$NCLSCRPT>;
foreach $scrptlines (@scrptlines) {
$scrptlines =~ s/$wrffcr/T+$fcrange2[$jj]H/g;
}
Run Code Online (Sandbox Code Playgroud)
$fcrange2[$jj] 已定义,我通过在上述 4 行代码之前打印其值来确认其值。
print "$fcrange2[$jj]\n";
Run Code Online (Sandbox Code Playgroud)
当我运行我的脚本时,这个特定的替换没有任何变化。我怀疑这与我定义要替换的字符串的方式有关。我将不胜感激任何帮助。齐洛尔·蒙巴
当心第一+在my $wrffcr=qr{T+\d+H};。它将使其匹配 1 个或多个Ts,而不是T后跟一个+。你可能想要
my $wrffcr=qr{T\+\d+H};
Run Code Online (Sandbox Code Playgroud)