在常量中存储带有'^'和'$'的正则表达式

时间:2016-07-06 18:36:45

标签: perl

我修改了我的代码并意识到我将正则表达式存储在常量中,然后将后者的值用于变量

我正在尝试使用qr //运算符在变量常量中存储正则表达式。一切都很好,除了'^'和'$'。我需要它们分别匹配行尾和行尾。

use constant REGEX_LINE    => qr/\^(\s*)(.*)\$/;
my $rx = REGEX_LINE;

打印$ rx显示它包含一些附加内容:

(?^:^(\s*)(.*)$)

当然现在正则表达式与我的数据不匹配

2 个答案:

答案 0 :(得分:1)

如果您希望^$匹配行的开头和结尾,

  • 不要逃避它们(否则它们会匹配^$),
  • 使用/m(否则它们将匹配字符串的开头和结尾)。

use constant REGEX_LINE => qr/^(\s*)(.*)$/m;

答案 1 :(得分:-2)

在$符号之前添加转义字符(\),否则它将被视为变量

的一部分