【发布时间】:2013-09-27 00:37:26
【问题描述】:
我想替换字符串中某个数字的所有实例,但前提是该数字位于以空格分隔的第 n 列中。
这是我目前所拥有的:
$_ =~ s/\s+([^\s]+\s+){$numcols}$i(.*)\n/$rep/;
基本上会有几个空格,然后会有:(非空格(列)后跟空格)为 $numcols 次。然后,会有$i,其中$i 是我要替换的数字,后跟一些我不关心的字符和一个换行符。但是,我不想用 $rep 替换 ALL OF THAT,而只想替换 $i。我该怎么做?
【问题讨论】:
-
我认为在空间上拆分并替换结果数组的第 n 个元素可能更容易。
-
问题是我要重新打印,而且我事先不知道每列之间需要添加多少空格
-
请注意,您不需要指定
$_ =~。这是默认设置。这就是$_存在的原因。$_是“它”变量。只需s/.../..../。