gpt4 book ai didi

regex - 在 Perl 中使用预编译正则表达式时的问题

转载 作者:行者123 更新时间:2023-12-01 10:19:32 27 4
gpt4 key购买 nike

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

my $regex_partner = qr/<h1 id="PartnerName">(?<partner_name>.*?)<\/h1>/;
$content =~ $regex_partner;
$partner_name = $+{partner_name};

预编译时工作正常,但是:

my $regex_web =~ qr/Company Website:.*openWindow[(]'(?<website>http:\/\/.*?)'/s;
$content =~ $regex_web;
$website = $+{website};

什么都不返回,但如果我取出整个预编译就可以工作。似乎任何时候使用 qr//s,它都不起作用。

帮助?

最佳答案

你打错了。

my $regex_web =~ qr/.../s;

应该是:

my $regex_web = qr/.../s;

前者正在对 $regex_web 执行模式匹配。后者将模式分配给 $regex_web。如果出现警告,您会收到“在模式匹配中使用未初始化的值 $regex_web”警告。

除非这是您帖子中的拼写错误?

关于regex - 在 Perl 中使用预编译正则表达式时的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8216415/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com