1.Html中Tag提取
])*>
2.提取标签中的url和链接文本
while ($Html =~ m{a\b([^>]+)>(.*?)}ig)
{
my $Guts = $1;
my $Link = $2;
if ($Guts =~ m{
\b HREF#href属性
\s* = \s*#两头可能出现空白符
(?:#其值为
"([^"]*)"#双引号字符串
|
'([^']*)'#单引号字符串
|
([^'">\s]+)#或者是其他文本
)
}xi)
{
my $Url = $+;
print "$Url with link text: $Link\n";
}
}
3.校验HTTP URL
把它分解为主机名(hostname)和路径(path)两部分。
主机名是「^http://」之后到第一个/(如果有)之间的内容,路径就是除此之外的内容
「^http://([^/]+)(/.*)?$」
if ($url =~ m{^http://([^/:]+)(:(\d+))?(/.*)?$}i)
{
my $host = $1;
my $port = $3 || 80; #如果存在就使用$3,否则默认为80
my $path = $4 || "/"; #如果存在就使用$4,否则默认为”/“
print "Host: $host\n";
print "Port: $port\n";
print "Path: $path\n";
}else{
print "Not an HTTP URL\n";
}
4.从纯文本中查找URL的框架,可以在其中添加匹配主机名的子表达式
\b
(
(ftp|https?)://[-\w]+(\.\w[-\w]*)+
|
(?i: [a-z0-9] (?:[-a-z0-9]*[a-z0-9])? \. )+
(?-i: com\b
| edu\b
| biz\b
| gov\b
| in(?:t|fo)\b
| mil\b
| net\b
| org\b
| [a-z][a-z]\b
)
)
( : \d+ )?
(
/
[^.!,?;"'<>()\[\]{}\s\x7F-\xFF]*
(?:
[.!,?]+ [^.!,?;"'<>()\[\]()\s\x7F-\xFF]+
)+
)?
来自《精通正则表达式》
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!