php中常用正则表达式函数

来源:互联网 发布:openwrt手机网络共享 编辑:程序博客网 时间:2024/05/16 06:47

php中常用正则表达式函数


本文是慕课网上鬼斧神工之正则表达式课程的阅读笔记-1

<?phppreg_match($pattern,$subject)preg_match_all($pattern,$subject,array&$matches)preg_replace($pattern,$replacement,$subject)preg_filter($pattern,$replacement,$subject)preg_grep($pattern,array $input)preg_split($pattern,$subject)preg_quote($str)?>

其中:

  • $pattern=正则表达式
  • $subject = 匹配的目标数据

1. show()函数

/**  * @name : show * @param $var : input data * @return void   */function show($var = null) {    if(empty($var)) {        echo 'null';    } elseif(is_array($var) || is_object($var)) {        // array,object        echo '<pre>';   // 用pre标签包围的块可以整齐缩进        print_r($var);        echo '</pre>';    } else {        // string,int,float...        echo $var;    }}

2. preg_match, preg_match_all函数

2.1 代码片段

// preg_match, preg_match_all$pattern = '/[0-9]/';$subject = 'weuyr3ui76as83s0ck9';$m1 = $m2 = array();$res1 = preg_match($pattern, $subject, $m1);$res2 = preg_match_all($pattern, $subject, $m2);show($m1);echo '<hr />';show($m2);echo '<hr />';show($res1.'||'.$res2);

2.2 运行结果

运行结果

3. preg_replace(类str_replace), preg_filter函数

3.1 代码片段

// preg_replace(str_replace), preg_filter// $pattern = '/[0-9]/';$pattern = array('/[0123]/', '/[456]/', '/[789]/');$subject = 'weuyr3ui76as83s0ck9';$subject = array('weuy', 'r', '3ui76', 'as', '83s0ck9');// $replacement = '慕女神';$replacement = array('慕', '女', '神');$str1 = preg_replace($pattern, $replacement, $subject);$str2 = preg_filter($pattern, $replacement, $subject);show($str1);echo '<hr />';show($str2);

3.2 运行结果

这里写图片描述

4. preg_grep, preg_split(类explode)

4.1 代码片段

// preg_grep 阉割版的preg_filter,只匹配不替换$pattern = '/[0-9]/';$subject = array('weuy', 'r', '3ui76', 'as', '83s0ck9');$arr = preg_grep($pattern, $subject);show($arr);// preg_split(explode) $pattern = '/[0-9]/';$subject = '慕5女2神,0约吗?';$arr = preg_split($pattern, $subject);show($arr);

4.2 运行结果

这里写图片描述

5. preg_quote 正则运算符转义

5.1 代码片段

// preg_quote 正则运算符转义$str = 'qwer{asdf}[1234]';$str = preg_quote($str);show($str);

5.2 运行结果

qwer\{asdf\}\[1234\]

知识小结


  1. pre标签用来格式化输出
  2. preg_match函数返回值为0或1