【发布时间】:2017-05-26 12:46:49
【问题描述】:
我需要完成两件事,我想知道是否可以使用 preg_replace 完成这两件事。
我需要修改一个字符串。现在我正在使用 preg_replace:
preg_replace($terms,$replace_with,$string,1);
其中 $terms 是一个术语数组,而 $replace_with 也是一个数组。
但是我还需要在单独的数组中返回匹配项(以便稍后更新其他值),因为有几个术语,我不知道匹配了哪个。
我知道如何做到这一点的唯一方法是先运行 preg_match,它默认返回匹配数组,然后 preg_replace 用新值实际替换字符串。
有没有办法返回字符串,并且只与 preg_replace 匹配?
我的最终目标是修改后的 $string(目前是通过 preg_replace 完成的),以及一个匹配 $terms 的数组。
【问题讨论】:
-
我做了,但我不明白这有什么帮助。我不想对匹配进行分组并用它们替换字符串。我需要类似于从 preg_match 返回的 $matches 数组的东西,这样我就可以在 preg_replace 之外使用它。你能给我举个例子吗?
-
$replace_with是数组还是字符串? -
可能是
preg_match_all(),然后是str_replace()与匹配项。 -
$replace_with 也是一个数组。