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"
*/
世人慌慌张张,不过图碎银几两