PHP正则表达式匹配验证提取网址URL实例总结

 匹配网址 URL 的正则表达式:

 代码如下 复制代码

(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)

示例:PHP 正则表达式自动匹配字符串是否为 url 地址,是的话自动加上链接。

 代码如下 复制代码

<?php   
function autolink($rurl){   
   $rurl = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_
\+.~#?&//=]+)', '<a href="\1" target=_blank rel=nofollow>\1
</a>', $rurl);   // rel=nofollow 是告诉搜索引擎不要去抓取这个链接  
   if( strpos($rurl "http") === FALSE ){   
      $rurl = eregi_replace('(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+
)', '<a href="http://\1" target=_blank rel=nofollow >\1</a>', $rurl);
      }else{   
         $rurl = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@
:%_\+.~#?&//=]+)', '\1<a href="http://\2" target=_blank rel=nofol
low>\2</a>', $rurl);   
   }   
   return $rurl;   
}   
?>

调用 autolink() 函数

 代码如下 复制代码

<?php   
$str = 'http://www.111cn.net';   
echo autolink($str);   
?>

例子1 获得https开头的例子

 代码如下 复制代码

//https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?

//PHP Example: Automatically link URL's inside text.

$text = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $text);

例子2 直接提取页面中<a 中的url地址

 代码如下 复制代码
function match_links($document) {
preg_match_all("'<\s*a\s.*?href\s*=\s*([\"\'])?(?(1)(.*?)\\1|([^\s\>]+))[^>]*>?(.*?)</a>'isx",$document,$links);
while(list($key,$val) = each($links[2])) {
if(!empty($val))
$match['link'][] = $val;
}
while(list($key,$val) = each($links[3])) {
if(!empty($val))
$match['link'][] = $val;
}
while(list($key,$val) = each($links[4])) {
if(!empty($val))
$match['content'][] = $val;
}
while(list($key,$val) = each($links[0])) {
if(!empty($val))
$match['all'][] = $val;
}
return $match;
}

好了到此关于正则获得url地址也就介绍完了,上面的几个例子各有所长了,大家可以根据自己的需求来选择更合适自己的匹配验证提取网址URL正则。

 

时间: 2024-08-03 08:28:52

PHP正则表达式匹配验证提取网址URL实例总结的相关文章

java正则表达式匹配网页所有网址和链接文字的示例_java

复制代码 代码如下: import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.

js匹配网址url的正则表达式集合_正则表达式

DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母.标号中除连字符(-)外不能使用其他的标点符号.级别最低的域名写在最左边,而级别最高的域名写在最右边.由多个标号组成的完整域名总共不超过255个字符.所以验证则网址url的正则可以如下几种 方法一: function checkUrl(urlString){ if(urlString!=""){ var reg=/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+

js匹配网址url的正则表达式集合

DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母.标号中除连字符(-)外不能使用其他的标点符号.级别最低的域名写在最左边,而级别最高的域名写在最右边.由多个标号组成的完整域名总共不超过255个字符.所以验证则网址url的正则可以如下几种 方法一: function checkUrl(urlString){ if(urlString!=""){ var reg=/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+

正则表达式匹配(URL、电话、手机、邮箱)的实例代码

正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表通常被用来检索.替换那些符合某个模式(规则)的文本.下面通过实例代码给大家介绍正则表达式匹配(URL.电话.手机.邮箱)的实例代码,一起看看吧! 废话不多说了,直接给大家贴代码了,具体代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta ch

网址 url 正则表达式实例

function funcUrl($str)//url正则表达试  {   return (preg_match("/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>""])*$/",$str))?true:false;  } if( $_POST) {  if( funcUrl( $_POST['url'] ) )  {   echo $_POST['url'];  }  els

关于java正则表达式匹配url

问题描述 Pattern pattern=Pattern.compile(正则表达式); Matcher m=pattern.matcher("http://www.123.com/234/333.html"); //除中文不用外,其他的都要 if(m.find()){System.out.println(m.find());System.out.println(m.start()); System.out.println(m.end()); System.out.println(m.

python使用正则表达式提取网页URL的方法

  本文实例讲述了python使用正则表达式提取网页URL的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 import re import urllib url="http://www.3lian.net" s=urllib.urlopen(url).read() ss=s.replace(" ","") urls=re.findall(r"<a.*?href=.*?</a&g

js 验证电子邮件地址 url地址的正则正则表达式

网页特效 验证电子邮件地址 url地址的正则正则表达式   *   * @parameter string str 字符串   * @return boolean   */ function checkmail(str){   return str.match(/^(w+.)*w+@(w+.)+[a-za-z]+$/);  }    /**   * 验证url地址   *    * @parameter string $str 字符串   * @return boolean   */ funct

django-关于URL正则表达式匹配

问题描述 关于URL正则表达式匹配 大家好, 我在命令行,用如下命令,正则表达式匹配成功: m=re.match(r'api/blogs/?idstart=d+',"api/blogs/?idstart=12"); m <_sre.SRE_Match object at 0x024A3E20> 但是在url文件中,写成这样: url(r'^api/blogs/?idstart=d+',blogs), 再通过地址http://127.0.0.1:8000/api/blogs/