用文件读取行Perl中的空字符串覆盖

时间:2011-11-10 16:24:51

标签: regex perl file

我正在编写一个脚本,它将删除给定位置的文本,该位置用xFE分隔,文本标识符为x14。

以下是一行示例:

þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ

(注意:xFE字符无法正常显示。抱歉。)

我想要的是获得第n个。我已经将它拆分为\ xFE并且可以检查值,但我想要做的是清空þþ之间的值。

有什么想法吗?

更新

为了澄清一下,我正在做的是读取一个文件,并且在该文件的一行上的nTh位置我要替换指定的þþ字符所包围的内容。它是一个使用\ xFE和\ x14字符的CSV文件。我想要做的是在\ xFE分割线,然后获取\ x14字符之间的值,然后覆盖文件中的该值。

1 个答案:

答案 0 :(得分:0)

我正在使用字符串'aaZbbZccZddZeeZff',以便更容易识别第n个项目而不是您正在使用的字符。

作为正则表达式,要删除第四项,

my $data = 'aaZbbZccZddZeeZff';
$data =~ s/((?:..Z){3})../\1/;
print $data;
print "\n";

这会返回字符串'aaZbbZccZZeeff'(注意加倍的分隔符 - 尽管通过在匹配中添加分隔符很容易解决这个问题。)

如果您已将其拆分为列表,则还可以使用splice从列表中删除项目,然后重新构建字符串。

my $data = 'aaZbbZccZddZeeZff';
my @data = split('Z',$data);
splice(@data,3,1);
print $data;
print "\n";

打印'aaZbbZccZeeZff'。