gpt4 book ai didi

html - 使用正则表达式解析 html - 使用捕获和 $1 参数

转载 作者:行者123 更新时间:2023-11-28 04:57:41 25 4
gpt4 key购买 nike

我只想说,我知道您无法使用正则表达式解析 HTML。我明白了。你不能用正则表达式解析 HTML。

我只是从网页中获取一些 URL。

输出有点奇怪——有一个新行在结束 anchor 标签之后。

<A HREF="tmtrack.dll?IssuePage&SolutionId=8&RecordId=20193&Template=view&TableId
=1023"><B>26165</B></A>

<A HREF="tmtrack.dll?IssuePage&SolutionId=8&RecordId=21811&Template=view&TableId
=1023"><B>28722</B></A>

<A HREF="tmtrack.dll?IssuePage&SolutionId=8&RecordId=22163&Template=view&TableId
=1023"><B>29327</B></A>

<A HREF="tmtrack.dll?IssuePage&SolutionId=8&RecordId=22238&Template=view&TableId
=1023"><B>29450</B></A>

所以我写了这个小脚本,让它更整洁。

#!/usr/bin/perl
use strict;
use warnings ;
my $list = "/tmp/rawurl_list";
open( my $filehandle ,"<", "$list") or die $!;
while (<$filehandle>) {
s/\n//g;
s/\<\/A\>/\n/g;
print $_ ;
if ($_ =~ /^<A HREF="(.*)"/) {
print $1;
}
}

这就是我得到的

<A HREF="tmtrack.dll?  IssuePage&SolutionId=8&RecordId=20193&Template=view&TableId=1023"><B>26165</B>
<A HREF="tmtrack.dll?IssuePage&SolutionId=8&RecordId=21811&Template=view&TableId=1023"><B>28722</B>
<A HREF="tmtrack.dll?IssuePage&SolutionId=8&RecordId=22163&Template=view&TableId=1023"><B>29327</B>
<A HREF="tmtrack.dll?IssuePage&SolutionId=8&RecordId=22238&Template=view&TableId=1023"><B>29450</B>

但是我在剥离\A HREF 标签时遇到了麻烦。

HREF 正则表达式一定没问题 - 它适用于单行。

bash-3.00$ /casper/strip | perl -nle 'print /^<A\sHREF="(.*)"/'
tmtrack.dll?IssuePage&SolutionId=8&RecordId=20193&Template=view&TableId=1023
tmtrack.dll?IssuePage&SolutionId=8&RecordId=21811&Template=view&TableId=1023
tmtrack.dll?IssuePage&SolutionId=8&RecordId=22163&Template=view&TableId=1023
tmtrack.dll?IssuePage&SolutionId=8&RecordId=22238&Template=view&TableId=1023

我一定是脚本出了问题——我需要了解为什么这不会去除 html 标签。我发布这个是因为我一直遇到这个错误并且最终使用命令行中的 perl 提取而不是脚本。我没有学习过去。

最佳答案

您的脚本一次只读取一行;结尾 " 只会在 while 循环的下一次迭代中遇到。如果您想一次读取一个链接,请尝试添加:

local $/ = '</A>';

在 while() 之前。 (参见 $/。)

关于html - 使用正则表达式解析 html - 使用捕获和 $1 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20133055/

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