最常用的PHP正则表达式收集整理


本文整理自网络,侵删。

PHP代码
$str = preg_replace("/(<a.*?>)(.*?)(<\/a>)/", '\1<span class="link">\2</span>\3', $str);
其中用了三个子模式(每个圆括号中内容为一个子模式),第一个是链接开始标签,第二个是链接文本,第三个是</a>

然后第二个参数中\1、\2、\3就表示这三个部分,要替换成什么样子还不简单?

获取页面中的所有链接地址的PHP函数

下面这个用PHP写的函数,可以获取任意的字符串$string中的所有链接地址($string可以是从一个HTML页面文件直接读取出来的字符串),结果保存在一个数组中返回.该函数自动把电子邮件地址排除在外,而且返回的数组中不会有重复元素. 

function GetAllLink($string) 
{ 
$string = str_replace("\r","",$string); 
$string = str_replace("\n","",$string); 

$regex[url] = "((http|https|ftp|telnet|news):\/\/)?([a-z0-9_\-\/\.]+\.[][a-z0-9:;&#@=_~%\?\/\.\,\+\-]+)"; 
$regex[email] = "([a-z0-9_\-]+)@([a-z0-9_\-]+\.[a-z0-9\-\._\-]+)"; 

//去掉标签之间的文字 
$string = eregi_replace(">[^<>]+<","><", $string); 

//去掉JAVASCRIPT代码 
$string = eregi_replace("<!--.*//-->","", $string); 

//去掉非<a>的HTML标签 
$string = eregi_replace("<[^a][^<>]*>","", $string); 

//去掉EMAIL链接 
$string = eregi_replace("<a([ ]+)href=([\"']*)mailto:($regex[email])([\"']*)[^>]*>","", $string); 

//替换需要的网页链接 
$string = eregi_replace("<a([ ]+)href=([\"']*)($regex[url])([\"']*)[^>]*>","\\3\t", $string); 

$output[0] = strtok($string, "\t"); 
while(($temp = strtok("\t"))) 
{ 
if($temp && !in_array($temp, $output)) 
$output[++$i] = $temp; 
} 

return $output; 
}

以下是以PHP的语法所写的示例
验证字符串是否只含数字与英文,字符串长度并在4~16个字符之间

<?php 
$str = 'a1234'; 
if (preg_match("^[a-zA-Z0-9]{4,16}$", $str)) { 
echo "验证成功";} else { 
echo "验证失敗";}?> 

简易的台湾身分证字号验证

<?php 
$str = 'a1234'; 
if (preg_match("^(?:\d{15}|\d{18})$", $str)) { 
echo "验证成功"; 
} else { 
echo "验证失敗";} 
?> 

阅读剩余部分

相关阅读 >>

微信公众平台开发入门教程(sae方倍工作室)

discuz中用到的javascript函数解析 font color=red原创font第22页

清除复制论坛(discuz!)内容时附带的干扰码的解决方法

destoon首页调用求购供应信息的地区名称的方法

discuz!7.0道具中心功能详解

discuz 修改创始人密码、管理员登录密码的方法

discuz 7.07.17.2 首页空白的解决方案讨论

做了cdn获取用户真实ip的函数代码(php与asp设置方式)

再谈php未来之路

discuz!5的php代码高亮显示插件(黑暗中的舞者更新)

更多相关阅读请进入《Discuz论坛》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...