Regex 在文件读取行Perl中用空字符串覆盖
我正在编写一个脚本,该脚本将删除给定位置的文本,该位置用xFE分隔,文本标识符为x14 下面是一个行的示例:Regex 在文件读取行Perl中用空字符串覆盖,regex,perl,file,Regex,Perl,File,我正在编写一个脚本,该脚本将删除给定位置的文本,该位置用xFE分隔,文本标识符为x14 下面是一个行的示例: þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ 注意:xFE字符将无法正确显示。对不起 我想要的是得到第n个。我已经在\xFE上拆分了它,可以检查该值,但我要做的是清空þþ之间的值 有什么想法吗 更新 我只是想澄清一下,我所做的是读取一个文件,在该文件中一行的第n个位置,我想替换由指定的þþ字符包围的
þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ
注意:xFE字符将无法正确显示。对不起
我想要的是得到第n个。我已经在\xFE上拆分了它,可以检查该值,但我要做的是清空þþ之间的值
有什么想法吗
更新
我只是想澄清一下,我所做的是读取一个文件,在该文件中一行的第n个位置,我想替换由指定的þþ字符包围的内容。它是一个使用\xFE和\x14字符的CSV文件。我要做的是在\xFE处拆分行,然后在\x14个字符之间获取值,然后在文件中覆盖该值。我使用字符串“aaZbbZccZddZeeZff”,以便更容易识别第n个项目,而不是使用的字符 作为正则表达式,要删除第四项
my $data = 'aaZbbZccZddZeeZff';
$data =~ s/((?:..Z){3})../\1/;
print $data;
print "\n";
这将返回字符串“aazbbzczzeeff”,注意分隔符是双精度的——尽管通过将分隔符添加到匹配项中很容易解决这一问题
如果已经将其拆分为列表,也可以使用splice从列表中删除项目,然后重新构建字符串
my $data = 'aaZbbZccZddZeeZff';
my @data = split('Z',$data);
splice(@data,3,1);
print $data;
print "\n";
这个打印“aazbbzcczezff” 您是否已经尝试过拆分、分配然后加入?了解您所考虑和尝试的内容以及它们不起作用的原因是很有用的,这样建议的答案就不会建议您已经遇到问题的解决方案。举一个例子,说明上面这一行的结果也会很有帮助