PHP学习笔记--php教科书上关于正则表达式实例代码(摘要)
<?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); ?>