我修改了我的代码并意识到我将正则表达式存储在常量中,然后将后者的值用于变量
我正在尝试使用qr //运算符在变量常量中存储正则表达式。一切都很好,除了'^'和'$'。我需要它们分别匹配行尾和行尾。
use constant REGEX_LINE => qr/\^(\s*)(.*)\$/;
my $rx = REGEX_LINE;
打印$ rx显示它包含一些附加内容:
(?^:^(\s*)(.*)$)
当然现在正则表达式与我的数据不匹配
答案 0 :(得分:1)
如果您希望^
和$
匹配行的开头和结尾,
^
和$
),/m
(否则它们将匹配字符串的开头和结尾)。
use constant REGEX_LINE => qr/^(\s*)(.*)$/m;
答案 1 :(得分:-2)
在$符号之前添加转义字符(\),否则它将被视为变量
的一部分