您的位置:首页 > 编程语言 > PHP开发

6. PHP 正则表达式

2015-10-08 17:04 543 查看
1.简介



2. PCRE 兼容正则表达式函数

2.1 preg_grep()函数

函数语法:
array preg_grep(string pattern , array input)




2.2 preg_match() 函数和preg_match_all() 函数

函数语法:
int preg_match/preg_match_all(string pattern,string subject[,array matches])




2.3 preg_quote() 函数

函数语法:
string preg_quote(string str[,string delimiter])




2.4 preg_replace() 函数

函数语法:
mixed preg_replace(mixed pattern,mixed replacement,mixed subject[,int limit])






2.5 preg_replace_callback() 函数

函数语法:
mixed preg_replace_callback(mixed pattern,callback callback,mixed subject[,int limit])






2.6 preg_split() 函数

函数语法:
array preg_split(string pattern ,string subject[,int limit])




正则表达式的搜索与替换在某些方面具有重要用途,比如调整目标字符串的格式,改变目标字符串中匹配字符串的顺序等。

例如我们可以简单的调整字符串的日期格式:

$string = 'April 15, 2014';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '$3, ${1} $2';
echo preg_replace($pattern, $replacement, $string); //结果为:2014, April 15
其中${1}与$1的写法是等效的,表示第一个匹配的字串,$2代表第二个匹配的。

通过复杂的模式,我们可以更加精确的替换目标字符串的内容。

$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
'/^\s*{(\w+)}\s*=/');
$replace = array ('\3/\4/\1\2', '$\1 =');//\3等效于$3,\4等效于$4,依次类推
echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27'); //结果为:$startDate = 5/27/1999
//详细解释下结果:(19|20)表示取19或者20中任意一个数字,(\d{2})表示两个数字,
(\d{1,2})表示1个或2个数字,(\d{1,2})表示1个或
2个数字。^\s*{(\w+)\s*=}表示以任意空格开头的,
并且包含在{}中的字符,并且以任意空格结尾的,
最后有个=号的。
用正则替换来去掉多余的空格与字符:

$str = 'one     two';
$str = preg_replace('/\s+/', ' ', $str);
echo $str; // 结果改变为'one two'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: