当谈到 preg_replace 功能时,我仍然完全迷失了,所以如果有人帮助我完成这个功能,我会非常高兴。
我有一个字符串,其中可以包含对函数的调用,例如:Published("today")
我需要通过正则表达式将其转换为Published("today", 1)
我基本上需要通过正则表达式向函数添加第二个参数。我不能使用 str_replace 因为第一个参数可以是(必须是)字母数字文本。
当谈到 preg_replace 功能时,我仍然完全迷失了,所以如果有人帮助我完成这个功能,我会非常高兴。
我有一个字符串,其中可以包含对函数的调用,例如:Published("today")
我需要通过正则表达式将其转换为Published("today", 1)
我基本上需要通过正则表达式向函数添加第二个参数。我不能使用 str_replace 因为第一个参数可以是(必须是)字母数字文本。
$string = 'Published("today")';
$foo = preg_replace('/Published\("(\w+)"\)/', 'Published("$1", 1)', $string);
preg_replace_callback应该做我认为的工作。
<?php
$string = 'Published("today"); Published("yesterday"); Published("5 days ago");';
$callback = function($match) {
return sprintf('%s, 1', $match[0]);
};
$string = preg_replace_callback(
'~(?<=Published\()"[^"]+"(?=\))~',
$callback,
$string
);
echo $string;
/*
Published("today", 1); Published("yesterday", 1); Published("5 days ago", 1);
*/