贴几个常用的正则表达式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 = "((http|https|ftp|telnet|news):\/\/)?(+\.[]+)";
$regex = "(+)@(+\.+)";
//去掉标签之间的文字
$string = eregi_replace(">[^<>]+<","><", $string);
//去掉JAVASCRIPT代码
$string = eregi_replace("<!--.*//-->","", $string);
//去掉非<a>的HTML标签
$string = eregi_replace("<[^a][^<>]*>","", $string);
//去掉EMAIL链接
$string = eregi_replace("<a([ ]+)href=([\"']*)mailto:($regex)([\"']*)[^>]*>","", $string);
//替换需要的网页链接
$string = eregi_replace("<a([ ]+)href=([\"']*)($regex)([\"']*)[^>]*>","\\3\t", $string);
$output = 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("^{4,16}$", $str)) {
echo "验证成功";} else {
echo "验证失敗";}?>
简易的台湾身分证字号验证
代码如下:
<?php
$str = 'a1234';
if (preg_match("^(?:\d{15}|\d{18})$", $str)) {
echo "验证成功";
} else {
echo "验证失敗";}
?>
页:
[1]