当前位置: 网学 > 设计资源 > 正则表达式 > 正文

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

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 佚名 来源: 网络 发布时间: 13/07/04

【编者按】网学网正则表达式频道为大家收集整理了“最常用的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 "验证失敗";}
?>


下面的代码实现文字中的代码块,功能就如你在脚本之家看到的代码一样。
复制代码 代码如下:
function codedisp($code) {
global $discuzcodes;
$discuzcodes[''pcodecount'']++;
$code = htmlspecialchars(str_replace(''\\"'', ''"'', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
$discuzcodes[''codehtml''][$discuzcodes[''pcodecount'']] = "<br><div class=\"msgheader\"><div class=\"right\"><a href=\"###\" class=\"smalltxt\" onclick=\"copycode($(''phpcode$discuzcodes[codecount]''));\">[复制此代码]</a></div>代码如下:</div><div class=\"msgborder\" id=\"phpcode$discuzcodes[codecount]\">".fhtml2($code)."</div><br>";
$discuzcodes[''codecount'']++;
return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";
}
$message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "codedisp(''\\1'')", $message);
$message = preg_replace("/\s*\[html\](.+?)\[\/html\]\s*/ies", "htmldisp(''\\1'')", $message);


匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]

  • 上一篇资讯: javascript判断中文的正则
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号