PHP进修笔记--php教科书上关于正则表达式实例代码(择要)
添加时间:2013-5-25 点击量:
<?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 = Im Chinese! I can eat;
¥arr = preg_split(¥preg,¥str); //调换
var_dump(¥arr);
?>
真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》
<?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 = Im Chinese! I can eat;
¥arr = preg_split(¥preg,¥str); //调换
var_dump(¥arr);
?>
真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》