Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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哈希数组的正确语法是什么?示例从页面获取超链接 @url=$field=~/.*mgo#多行、全局、一次编译 @text=$field=~/(.*)/mgo; 对于($count=0;$count{“url”},@array_of_links->{“text”})=$field=~/(.*)/mgo; 对于($count=0;$count_Regex_Arrays_Perl_Hash_Hyperlink - Fatal编程技术网

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];
}