合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
* **正则匹配**:根据正则表达式匹配相应的内容    *  int **preg\_match\_all** ( string `$pattern`, string `$subject`, array `$matches` \[, int `$flags` \] ) * **preg\_match**( string pattern, string subject [, array matches ] );第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜索到subject结尾处,则需使用 preg\_match\_all() 函数 返回0或者1 ``` if (preg_match("/^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/",$mobile)) {} ``` ``` $url="http://www.demo.com/home/Company/productdetail/cmid/1/id/16"; preg_match("/id\/(\d+$)/",$url ,$matches); ``` * **正则替换**:根据正则表达式匹配内容并替换 * **preg_replace**(`$pattern`,`$replacement`,`$subject`); ~~~ $str="1=1 and cate_id=$cate['id'] and a<>2 and c=$id" $res=preg_replace ("/[\$]+([\S]+)[\s]+/", "{\$\\1} ", $str); //1=1 and cate_id={$cate['id']} and a<>2 and c=$id ~~~ * **正则分割**:根据正则表达式分割字符串,返回数组 * array **preg_split** ( string `$pattern` , string `$str` \[, int `$limit` = -1 \[, int `$flags` = 0 \]\] ) * array **split**( string pattern, string string [, int limit] )一般推荐上面的替换函数但是此函数对大小写敏感,对大小写有严格要求的用它,注意 preg\_replace\_callback — 执行一个正则表达式搜索并且使用一个回调进行替换 ``` <?php //使用逗号或空格(包含" ", \r, \t, \n, \f)分隔短语 $keywords = preg_split("/[\s,]+/", "hypertext language, programming"); print_r($keywords); ?> 结果 Array ( [0] => hypertext [1] => language [2] => programming ) ``` **将一个字符串分隔为组成它的字符** ``` <?php $str = 'string'; $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY); print_r($chars); ?> 结果 Array ( [0] => s [1] => t [2] => r [3] => i [4] => n [5] => g ) echo PREG_SPLIT_NO_EMPTY;//1 如果这个标记被设置,**preg\_split()**将仅返回分隔后的非空部分。 echo PREG_SPLIT_DELIM_CAPTURE;//2 如果这个标记设置了,用于分隔的模式中的括号表达式将被捕获并返回。 echo PREG_SPLIT_OFFSET_CAPTURE;//4 如果这个标记被设置, 对于每一个出现的匹配返回时将会附加字符串偏移量. 注意:这将会改变返回数组中的每一个元素, 使其每个元素成为一个由第`0`个元素为分隔后的子串,第`1`个元素为该子串在`subject`中的偏移量组成的数组。 ``` ~~~ <?php $str = 'hypertext language programming'; $chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE); print_r($chars); ?> ~~~ 以上例程会输出: ~~~ Array ( [0] => Array ( [0] => hypertext [1] => 0 ) [1] => Array ( [0] => language [1] => 10 ) [2] => Array ( [0] => programming [1] => 19 ) ) ~~~