<?php
/*posix扩展正则表达式函数*/
/*---------------------------------------------------*/
$ereg = '^[$][[:alpha:]_][[:alnum:]]*';
ereg($ereg,'$_name',$register); //匹配并且存放数组 //eregi()不分大小写
var_dump($register); //显示数组结构
/*---------------------------------------------------*/
$ereg = 'tm';
$str = 'hello,tm,Tm,tM';
$rep_str=eregi_replace($ereg,'TM',$str); //匹配成功的都用TM替换 ereg_replace() 分大小写
echo $rep_str;
/*---------------------------------------------------*/
$ereg = 'is';
$str = 'This is a register book.';
$arr_str = spliti($ereg,$str); //分割字符串。按正则匹配 split() 分大小写
var_dump($arr_str);
/*pcre兼容正则表达式函数 --无论从效率或者语法上pcre都略优于posix*/
/*---------------------------------------------------*/
$preg = '/\d{3,4}-?\d{7,8}/';
$arr = array('043212345678','0431-7654321','12345678'); //包含元素数组
$preg_arr = preg_grep($preg,$arr);
var_dump($preg_arr);
/*---------------------------------------------------*/
$str = 'This is an example!';
$preg = '/\b\w{2}\b/';
$num1 = preg_match($preg,$str,$str1); //匹配并返回成功个数,把匹配成功的放入数组 成功后,就停止
echo $num1."<br />";
var_dump($str1);
echo "<br />";
//匹配并返回成功个数,把匹配成功的放入数组 成功后,不停止,直到匹配所有字符结束
$num2 = preg_match_all($preg,$str,$str2);
echo $num2."<br />";
var_dump($str2);
/*---------------------------------------------------*/
$str = '!、$、^、*、+、.、[、]、\\、/、b、<、>';
$str2='b';
//自动将正则特殊字符进行转义,如果有参数,字符中含参数字符也会被转义
$match_one = preg_quote($str,$str2);
echo $match_one;
/*---------------------------------------------------*/
$string = '[b]粗体字[/b]';
//匹配并替换 用了反向引用
$b_rst = preg_replace('/\[b\](.*)\[\/b\]/i','<b>$1</b>',$string);
echo $b_rst;
/*---------------------------------------------------*/
function c_back($str)
{
//反向引用
$str = "<font color=$str[1]>$str[2]</font>";
return $str;
}
$string = '[color=blue]字体蓝色[/color]';
//preg_replace_callback函数中要替换的字符,换成了回调函数而已和 preg_replace差不多
echo preg_replace_callback('/\[color=(.*)\](.*)\[\/color\]/U',"c_back",$string);
/*---------------------------------------------------*/
//此函数书上没有,我自己写的示例给大家!
$preg = "/\s+/"; //这里也可以换成 "/\s{1,}/";
$str = "I'm Chinese! I can eat";
$arr = preg_split($preg,$str); //查找并拆分。--这里有笔误,以前看过的朋友对不住了,现已更正
var_dump($arr);
?>