Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在文件读取行Perl中用空字符串覆盖_Regex_Perl_File - Fatal编程技术网

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

Regex 在文件读取行Perl中用空字符串覆盖,regex,perl,file,Regex,Perl,File,我正在编写一个脚本,该脚本将删除给定位置的文本,该位置用xFE分隔,文本标识符为x14 下面是一个行的示例: þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ \xFE þþ 注意:xFE字符将无法正确显示。对不起 我想要的是得到第n个。我已经在\xFE上拆分了它,可以检查该值,但我要做的是清空þþ之间的值 有什么想法吗 更新 我只是想澄清一下,我所做的是读取一个文件,在该文件中一行的第n个位置,我想替换由指定的þþ字符包围的

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

下面是一个行的示例:

þþ \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”

您是否已经尝试过拆分、分配然后加入?了解您所考虑和尝试的内容以及它们不起作用的原因是很有用的,这样建议的答案就不会建议您已经遇到问题的解决方案。举一个例子,说明上面这一行的结果也会很有帮助