Regex 在正则表达式中使用perl哈希数组的正确语法是什么?示例从页面获取超链接 @url=$field=~/.*mgo#多行、全局、一次编译 @text=$field=~/(.*)/mgo; 对于($count=0;$count{“url”},@array_of_links->{“text”})=$field=~/(.*)/mgo; 对于($count=0;$count
我想你想要的是:Regex 在正则表达式中使用perl哈希数组的正确语法是什么?示例从页面获取超链接 @url=$field=~/.*mgo#多行、全局、一次编译 @text=$field=~/(.*)/mgo; 对于($count=0;$count{“url”},@array_of_links->{“text”})=$field=~/(.*)/mgo; 对于($count=0;$count,regex,arrays,perl,hash,hyperlink,Regex,Arrays,Perl,Hash,Hyperlink,我想你想要的是: (@array_of_links->{"url"}, @array_of_links->{"text"}) = $field =~ /<a.*?href="(.*?)".*?>(.*?)<\/a>/mgo; for ($count=0; $count<(scalar @array_of_links); $count++){ print "\"".$array_of_links[$count]{"text"}."\" goes t
(@array_of_links->{"url"}, @array_of_links->{"text"}) = $field =~ /<a.*?href="(.*?)".*?>(.*?)<\/a>/mgo;
for ($count=0; $count<(scalar @array_of_links); $count++){
print "\"".$array_of_links[$count]{"text"}."\" goes to ->\"".$array_of_links[$count]{"text"}."\"\n";}
Perl 5允许您为字符串和正则表达式选择自己的分隔符(例如,m/
用于正则表达式,qq/
用于双引号)。您可以使用它来避免使用难看的转义符,从而使字符串和正则表达式难以读取
但是,您似乎正在尝试使用正则表达式来解析HTML。这是一条路径,即。您确实应该进行研究。我想您需要的是:
(@array_of_links->{"url"}, @array_of_links->{"text"}) = $field =~ /<a.*?href="(.*?)".*?>(.*?)<\/a>/mgo;
for ($count=0; $count<(scalar @array_of_links); $count++){
print "\"".$array_of_links[$count]{"text"}."\" goes to ->\"".$array_of_links[$count]{"text"}."\"\n";}
Perl 5允许您为字符串和正则表达式选择自己的分隔符(例如,m/
用于正则表达式,qq/
用于双引号)。您可以使用它来避免使用难看的转义符,从而使字符串和正则表达式难以读取
但是,您似乎正在尝试使用正则表达式来解析HTML。这是一条路径,即。您确实应该进行研究。我将从标准免责声明开始,即使用正则表达式解析HTML是一个坏主意 在标量上下文中计算正则表达式匹配: 在标量上下文中,
m//g
的每次执行都会找到下一个匹配项,如果匹配则返回true,如果没有进一步的匹配则返回false
然后,对于每个匹配,将一个新的hashref推到链接的数组上:
for my $i (0 .. $#array_of_links) {
print qq($i. "$array_of_links[$i]{text}" goes to -> "$array_of_links[$i]{url}"\n);
}
我将从标准免责声明开始,即使用正则表达式解析HTML是一个坏主意
在标量上下文中计算正则表达式匹配:
在标量上下文中,m//g
的每次执行都会找到下一个匹配项,如果匹配则返回true,如果没有进一步的匹配则返回false
然后,对于每个匹配,将一个新的hashref推到链接的数组上:
for my $i (0 .. $#array_of_links) {
print qq($i. "$array_of_links[$i]{text}" goes to -> "$array_of_links[$i]{url}"\n);
}
my @array_of_links;
push @array_of_links => { url => $1, text => $2 }
while $field =~ /<a.*?href="(.*?)".*?>(.*?)<\/a>/mgo;
for (@array_of_links) {
print qq["$_->{text}" goes to ->"$_->{url}"\n];
}