如果存在preg_replace
,是否有A
替换B
的{{1}},如果A
B
A
1}}存在?
类似的东西:
B
将任何preg_replace('/ORDER BY field (ASC|DESC)/', 'ORDER BY field (***the alternative not matched***)');
转换为ORDER BY field ASC
,将ORDER BY field DESC
转换为ORDER BY field DESC
。
答案 0 :(得分:6)
您正在寻找的功能是preg_replace_callback。
示例:
function replace_asc_desc($matches)
{
return 'ORDER BY field ' . ($matches[1] == 'ASC' ? 'DESC' : 'ASC');
}
$string = 'ORDER BY field DESC';
echo preg_replace_callback('/ORDER BY field (ASC|DESC)/', 'replace_asc_desc', $string);