Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 在下线标记处拆分行时出现奇数警告_Regex_Perl - Fatal编程技术网

Regex 在下线标记处拆分行时出现奇数警告

Regex 在下线标记处拆分行时出现奇数警告,regex,perl,Regex,Perl,当我运行下面的代码时,我得到了预期的输出——四行。当我取消注释use warnings行时,会打印出一条消息: 在/regex.pl第13行传递了无法识别的转义\R 这是什么意思?在谷歌搜索该消息时,我没有发现太多信息,但该程序似乎工作正常(换句话说,转义\R被识别) 我正在使用Perl 5.8.8 #!/usr/bin/perl use strict; #use warnings; my $txt = <<EOF; dddddddddddddddd eeeeeeeeeeeeee

当我运行下面的代码时,我得到了预期的输出——四行。当我取消注释
use warnings
行时,会打印出一条消息:

/regex.pl
第13行传递了无法识别的转义
\R

这是什么意思?在谷歌搜索该消息时,我没有发现太多信息,但该程序似乎工作正常(换句话说,转义
\R
被识别)

我正在使用Perl 5.8.8

#!/usr/bin/perl

use strict;
#use warnings;

my $txt = <<EOF;
dddddddddddddddd
eeeeeeeeeeeeeeee
ffffffffffffffff
gggggggggggggggg
EOF

my @tarr = split(/\R/, $txt);

foreach my $t (@tarr )
{
    print $t . "\n";
}
#/usr/bin/perl
严格使用;
#使用警告;

my$txt=Perl v5.10中引入了
\R

因此,您的脚本实际上并没有像您在每个“行”周围放置文本或只是在数组中计算结果那样拆分行:

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

my $txt = <<'EOF';
dddddddddddddddd
eeeeeeeeeeeeeeee
ffffffffffffffff
gggggggggggggggg
EOF

foreach my $t (split /\R/, $txt ) {
    print "<$t>\n";
}
#/usr/bin/perl
严格使用;
使用警告;

my$txt=Perl v5.10中引入了
\R

因此,您的脚本实际上并没有像您在每个“行”周围放置文本或只是在数组中计算结果那样拆分行:

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

my $txt = <<'EOF';
dddddddddddddddd
eeeeeeeeeeeeeeee
ffffffffffffffff
gggggggggggggggg
EOF

foreach my $t (split /\R/, $txt ) {
    print "<$t>\n";
}
#/usr/bin/perl
严格使用;
使用警告;

my$txt=perl中插入字符串中的特殊序列-包括regexp,用
\

例如,
\n
是换行符,
\t
是制表符

\R
并不代表任何特殊情况,因此perl警告您

\r
是回车


更新:刚刚检查了perlrebackslash,显然\R是“\R通用新行。不在[]中。”在regexps中在perl 5.10中似乎是新的,因此如果您的perl比它旧…请检查perl中插入字符串中的
perl-v
特殊序列-其中包括regexp,用
\

例如,
\n
是换行符,
\t
是制表符

\R
并不代表任何特殊情况,因此perl警告您

\r
是回车

更新:刚刚检查了perlrebackslash,显然\R是“\R通用新行。不在[]。”在regexps中在perl 5.10中似乎是新的,所以如果您的perl比这更旧……请使用
perl-v