最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php使用preg_replace实现正则表达式的搜索结果和替换对应数组键值
时间:2022-06-25 02:44:39 编辑:袖梨 来源:一聚教程网
1、preg_replace的用途及使用方法
用途:执行正则表达式的搜索和替换;
正则替换
preg_replace() 函数用于正则表达式的搜索和替换。
语法:
mixed preg_replace( mixed pattern, mixed replacement, mixed subject [, int limit ] )
例
1. 逆向引用后面紧接着数字的用法
代码如下 | 复制代码 |
$string = "April 15, 2003"; /* Output April1,2003 */ |
2、匹配及替换数组对应键值的方法
关于PHP正则表达式修饰符e。
e (PREG_REPLACE_EVAL):如果这个修饰符设置了, preg_replace() 在进行了对替换字符串的 后向引用替换之后, 将替换后的字符串作为php 代码评估执行(eval 函数方式),并使用执行结果 作为实际参与替换的字符串。单引号、双引号、反斜线()和 NULL 字符在 后向引用替换时会被用反斜线转义。
举例:
代码如下 | 复制代码 |
echo $hello; |
// 输出结果类似为:Hello,Mr.Zhang
上述是将正则表达式的搜索结果替换与数组对应的键值。
同样,可以对这些搜索结果进行其他的处理。
代码如下 | 复制代码 |
$text = "Hello, phper"; $encoded = preg_replace( "'(.)'e" ,"dechex(ord('1'))" ,$text ); print "ENCODED: $encodedn"; |
例子 在 preg_replace() 中使用索引数组
代码如下 | 复制代码 |
$string = "The quick brown fox jumped over the lazy dog."; $patterns[0] = "/quick/"; $replacements[2] = "bear"; print preg_replace($patterns, $replacements, $string); /* Output The bear black slow jumped over the lazy dog. */ /* By ksorting patterns and replacements, ksort($patterns); print preg_replace($patterns, $replacements, $string); /* Output The slow black bear jumped over the lazy dog. */ ?> |
如果 subject 是个数组,则会对 subject 中的每个项目执行搜索和替换,并返回一个数组。
如果 pattern 和 replacement 都是数组,则 preg_replace() 会依次从中分别取出值来对 subject 进行搜索和替换。如果 replacement 中的值比 pattern 中的少,则用空字符串作为余下的替换值。如果 pattern 是数组而 replacement 是字符串,则对 pattern 中的每个值都用此字符串作为替换值。反过来则没有意义了。
/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后)。提示:要确保 replacement 构成一个合法的 PHP 代码字符串,否则 PHP 会在报告在包含 preg_replace() 的行中出现语法解析错误。
只替换一次
如题,有一段文本
123456abcdefgsdfsdafdfabcdffsafd
目标:将第二次出现的abc进行替换,第一次不做操作
代码如下 | 复制代码 |
$test = 'test test test1'; |
或者使用preg_replace函数来操作这个更专业mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] ) 我们只要限制后面的确limit即可
代码如下 | 复制代码 |
// constructing mask(s)... if (is_array($search)) { foreach ($search as $k=>$v) { $search[$k] = '`' . preg_quote($search[$k],'`') . '`'; } } else { $search = '`' . preg_quote($search,'`') . '`'; } // replacement return preg_replace($search, $replace, $subject, $limit); } ?> 一个更直接的
function sst($result,$keys){ return $result; sst(" ?>
|
相关文章
- 无期迷途派因怎么样 11-27
- 阴阳师季四时承青怎么样 阴阳师季四时承青皮肤介绍 11-27
- 阴阳师神酿星熊童子怎么样 阴阳师神酿星熊童子式神介绍 11-27
- 炉石传说融合进化猎卡组怎么样 11-27
- 崩坏星穹铁道星期日遗器怎么选择 11-27
- 群英风华录兑换码分享 11-27