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 在Perl中使用预编译正则表达式时出现的问题_Regex_Perl_Precompile - Fatal编程技术网

Regex 在Perl中使用预编译正则表达式时出现的问题

Regex 在Perl中使用预编译正则表达式时出现的问题,regex,perl,precompile,Regex,Perl,Precompile,当我尝试在Perl脚本中实现预编译的正则表达式时,我遇到了一些匹配问题。我让脚本在没有预编译的情况下工作,并且每当我有一个跨行的express时,它在预编译时都不会返回匹配。例如: my $regex_partner = qr/<h1 id="PartnerName">(?<partner_name>.*?)<\/h1>/; $content =~ $regex_partner; $partner_name = $+{partner_name}; my$re

当我尝试在Perl脚本中实现预编译的正则表达式时,我遇到了一些匹配问题。我让脚本在没有预编译的情况下工作,并且每当我有一个跨行的express时,它在预编译时都不会返回匹配。例如:

my $regex_partner = qr/<h1 id="PartnerName">(?<partner_name>.*?)<\/h1>/;
$content =~ $regex_partner;
$partner_name = $+{partner_name};
my$regex_partner=qr/(?*?);
$content=~$regex\u合作伙伴;
$partner_name=$+{partner_name};
预编译时工作正常,但:

my $regex_web =~ qr/Company Website:.*openWindow[(]'(?<website>http:\/\/.*?)'/s;
$content =~ $regex_web;
$website = $+{website};
my$regex\u web=~qr/公司网站:.*openWindow[(]'(?http:\/\/.*)/s;
$content=~$regex\u web;
$website=$+{website};
不返回任何内容,但是如果我去掉整个预编译,它就可以工作。似乎任何时候使用qr//s,它都不会工作

帮助?

您的打字错误

my $regex_web =~ qr/.../s;
这应该是:

my $regex_web = qr/.../s;
前者正在对
$regex\u web
执行模式匹配。后者正在将模式分配给$regex\u web。如果出现警告,您将得到“在模式匹配中使用未初始化值$regex\u web”警告


除非你的文章中有输入错误?

你使用的是什么版本的Perl?