无法识别的escape \ R在test.pl第7行传递

时间:2016-08-22 23:37:46

标签: regex perl

我有perl 5,版本22,(在Cygwin上,非常新版本)。即使它应该使用\ R似乎也不起作用。

我只是用一个新行代替双新行:

my $data = read_file($filename);
$data =~ s/\R\R/\R/g;

但是我收到错误"无法识别的转义\ R在test.pl第7行传递。"

我做错了吗?

1 个答案:

答案 0 :(得分:5)

正则表达式模式中的

\R匹配许多不同的换行符序列。

字符串文字中的

\R(例如替换表达式 [1] )毫无意义。

使用

$data =~ s/(\R)\R+/$1/g;

更好的是,

$data =~ s/\R\K\R+//g;
  1. 记住,

    s{...}{...}
    

    相同
    s{...}{ qq{...} }e