寻求帮助以编写PHP preg_replace模式来替换不一致的值

kx5bkwkv  于 2023-03-16  发布在  PHP
关注(0)|答案(1)|浏览(150)

在JSON字符串中,我需要替换多个示例中不一致的值

要在每个示例中替换的字符串格式

数值不一致 * 2022年8月252日 * 将替换为一致数值***2023年3月178日***

{"url":"/wp-content/uploads/sites/252/2022/08/banner-rental.jpg",

另一个示例可能是。请注意与06的区别

{"url":"/wp-content/uploads/sites/252/2022/06/banner-swx.jpg",

替换值由WordPress wp_upload_dir()['url']传递,它是存储在var $replace中的/wp-content/uploads/sites/178/2023/03

已尝试方法

preg_replace('#/wp-content/uploads/sites/(.*?)/#i',$replace,$jsondata);

结果很接近,但当然停止点是在sites/后面的第一个斜杠处,我无法定义查找过程并将最后一个斜杠设置为结束点。

{"url":"/wp-content/uploads/sites/178/2023/032022/06/banner-swx.jpg",

如何找到图像名称前的最后一个斜线并将其设置为搜索的终点?

enyaitl3

enyaitl31#

此模式返回了正确的结果,不知道为什么,但它按预期工作。

$data = '{"url":"/wp-content/uploads/sites/252/2022/06/banner-swx.jpg","url":"/wp-content/uploads/sites/252/2022/09/banner-rental.jpg"}';
$replace = wp_upload_dir()['url'];
preg_replace('#/wp-content/uploads/sites/(.*?)[^/]{4}[/$][^/]{2}#i',$replace,$data);

相关问题