gpt4 book ai didi

Perl "=+\n"作为 $/分隔符

转载 作者:行者123 更新时间:2023-12-01 09:47:03 25 4
gpt4 key购买 nike

对不起,一个愚蠢的问题,但我是初学者,所以我无法解决这个问题。

我处理的文件中,数据 block 被不同长度的连续 = 符号行划分,后跟 \n。我想使用 $/= "=+\n"; 将这些 block 作为单独的记录读取,但它没有检测到 === 分隔符。

所以我的代码是:

$ cat prog1 
#!/usr/bin/perl

use v5.22;
use strict;
use warnings;

$/ = "=+\n";
$\="+++\n";

while (<>){
chomp;
print;
}

我的数据:

$ cat data1 
line1
line2
===
line4
line5

我的输出:

$ ./prog1 data1 
line1
line2
===
line4
line5
+++

最佳答案

$/ 不支持正则表达式。您需要使用 ===\n

不过,您可以使用正则表达式来伪造 chomp

#!/usr/bin/env perl
use strict;
use warnings;


$/ = "=\n";
$\="+++\n";

while (<>){
s/^=+\n\z//gm;
print;
}

参见:perlvar :

the value of $/ is a string, not a regex.

关于Perl "=+\n"作为 $/分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46425482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com