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

2021-02-15 21:23

阅读:705

标签:order   php   正则表达   apt   指定位置   完整   replace   第一个   保存   

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学习之每天三个函数-第十六天

标签:order   php   正则表达   apt   指定位置   完整   replace   第一个   保存   

原文地址:https://www.cnblogs.com/death-satan/p/12981130.html


评论


亲,登录后才可以留言!