1.Html中Tag提取
<("[^"]*"|'[^']*'|[^'">])*>
2.提取<a></a>標籤中的url和連結文本
while ($Html =~ m{a\b([^>]+)>(.*?)</a>}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,否則預設為80my $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]+)+)?
來自《精通Regex》