php学习之每天三个函数-第十六天

Posted death-satan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php学习之每天三个函数-第十六天相关的知识,希望对你有一定的参考价值。

preg_match 执行一个全局正则表达式匹配

参数一: 要搜索的模式,字符串形式

参数二:被搜索的内容

参数三: 作为输出参数输出所有匹配结果, 数组排序通过flags指定。

参数四: 可以结合下面标记使用(注意不能同时使用PREG_PATTERN_ORDER和 PREG_SET_ORDER):/*

/*- PREG_PATTERN_ORDER: 结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。

  • PREG_SET_ORDER: 结果排序为$matches[0]包含第一次匹配得到的所有匹配(包含子组), $matches[1]是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。
  • PREG_OFFSET_CAPTURE: 如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。*/

参数四: 查找时从目标字符串的开始位置开始。可选参数offset用于 从目标字符串中指定位置开始搜索(单位是字节)。

$body = "phpjavascphp";
preg_match("/php/",$body,$data);
var_dump($data);
/**
 * 输入内容
 * array(1) {
    [0]=>
    string(3) "php"
    }
 */

preg_match_all 执行一个全局正则表达式匹配。

在匹配到第一个内容后,会继续从最后一次匹配的位置接着匹配下去

参数一: 要搜索的模式,字符串形式

参数二:被搜索的内容

参数三: 作为输出参数输出所有匹配结果, 数组排序通过flags指定。

参数四: 可以结合下面标记使用(注意不能同时使用PREG_PATTERN_ORDER和 PREG_SET_ORDER):

  • PREG_PATTERN_ORDER: 结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。
  • PREG_SET_ORDER: 结果排序为$matches[0]包含第一次匹配得到的所有匹配(包含子组), $matches[1]是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。
  • PREG_OFFSET_CAPTURE: 如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。

参数四: 查找时从目标字符串的开始位置开始。可选参数offset用于 从目标字符串中指定位置开始搜索(单位是字节)。

$body = "phpjavascphp";
preg_match_all("/.?php.?/",$body,$data);
var_dump($data);
/**
 * 输入内容
 * array(1) {
    [0]=>
    array(2) {
    [0]=>
    string(4) "phpj"
    [1]=>
    string(4) "cphp"
    }
    }
 */

preg_replace 执行一个正则表达式的搜索和替换。

参数一: 要匹配的正则,字符串形式

参数二: 用于替换的字符串或字符串数组

参数三: 要搜索替换的目标字符串或字符串数组。

参数四: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)

参数五: 可选,为替换执行的次数。

$body = "php是scphp";
$pattern = "/php/";
$rep = "java";
var_dump(preg_replace($pattern,$rep,$body));
/**
 * 输出内容:
 * string(13) "java是scjava"
 */

以上是关于php学习之每天三个函数-第十六天的主要内容,如果未能解决你的问题,请参考以下文章

python学习之第十六天

暑假第十六天之每天一些题系列

PHP表单处理会话管理文件上传文件处理执行函数(10.8 第十六天)

python学习之第十六课时--函数的作用及定义

学习python第十六天, 一周总结

python学习之第十六课时--缩进(indentation)