我在PHP中遇到了一些问题。
$string = "[:string] has [:int] [:string] and [:int] [:string]";
我只想修改(可能使用str_replace):
$string = "He has 5 apples and 3 bananas";
我怎么能这样做?
(Classic str_replace()将使用相同的单词修改所有[:int],
并不是我想要的。)
非常感谢...
答案 0 :(得分:2)
您可以使用以下正则表达式来捕获要替换的所有组,然后迭代它。
\[:([^\]]+)\]
或者您可以使用preg_replace_callback
并向其传递所需的替换功能。
$data = [...];
preg_replace_callback('/\[:([^\]]+)\]/', $str, function (&$matches) use ($data) {
return doSomethingWithMatches..
});