将文本中的MAIL和HTTP URL转化为链接形式
$hostnameregex = qr/[-a-z0-9]+(\.[-a-z0-9]+)*\.(com|cn|info)/i;#设置其中匹配URL的文本变量
chomp($text=<STDIN>);#接收用户输入的一行文本,并且去掉$text尾行的换行
$text =~ s{ #将mail转化为链接形式
\b
#把地址保存到$1中
(
\w[-.\w]*
\@
$hostnameregex
)
\b
}{<a href="mailto:$1">$1</a>}gix;#g表示全文搜索 i表示忽略大小写 x表示修饰符,使表达书更容易理解
print "this is $text \n";
chomp($text1=<STDIN>);
#将html地址转化为链接形式
$text1 =~ s{
\b
(
http://$hostnameregex \b
(
/[-a-z0-9_:~!@#$%^&*]*#path不一定会出现
(?<![!.?])#不能以[.,!?]出现
)?
)
}{<a href="$1">$1</a>}gix;
print "this is url $text1 \n";
chomp($text=<STDIN>);#接收用户输入的一行文本,并且去掉$text尾行的换行
$text =~ s{ #将mail转化为链接形式
\b
#把地址保存到$1中
(
\w[-.\w]*
\@
$hostnameregex
)
\b
}{<a href="mailto:$1">$1</a>}gix;#g表示全文搜索 i表示忽略大小写 x表示修饰符,使表达书更容易理解
print "this is $text \n";
chomp($text1=<STDIN>);
#将html地址转化为链接形式
$text1 =~ s{
\b
(
http://$hostnameregex \b
(
/[-a-z0-9_:~!@#$%^&*]*#path不一定会出现
(?<![!.?])#不能以[.,!?]出现
)?
)
}{<a href="$1">$1</a>}gix;
print "this is url $text1 \n";
小提示:URL可以看成是http://hostname/path形式
path之后没有\b,因为URL之后通常都是标点符号
path之后没有\b,因为URL之后通常都是标点符号
本文转自 mcshell 51CTO博客,原文链接:http://blog.51cto.com/mcshell/348859,如需转载请自行联系原作者