正则表达式写html,正则表达式处理html实例(Perl实现)

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

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值