首页 > 解决方案 > php如何用preg_replace动态替换字符串范围?

问题描述

我想使用 preg_replace 动态替换字符范围。例如 D01 到 D99 我想用空白替换这个字符串范围,而 M01 到 M99 想用<br/>标签替换它。我正在尝试使用静态值数组替换它。这是我的代码。

$str1 = "This is mystrD01 and this is D03just for testingD02.M01Loream ipsum text1M02loream ipsum text2";
$arr1 = array("D01","D02","D03","D04","M01","M02","M03");
$replaceArr = array("","","","","<br/>","<br/>","<br/>");
echo str_replace($str_arr1,$replace_arr2,$str2);

标签: phpregexpreg-replace

解决方案


您可以preg_replace在数组上使用正则表达式匹配。

D\d*将匹配“D”,然后匹配任意数量的数字。

$arr1 = array("D01","D02","D03","D04","M01","M02","M03");
$arr1 = preg_replace("/D\d*/", '', $arr1);
$arr1 = preg_replace("/M\d*/", '<br />', $arr1);

输出 -

["","","","","<br/>","<br/>","<br/>"]

推荐阅读