将A替换为B,将B替换为A.

时间:2013-01-02 10:45:17

标签: php regex preg-replace

如果存在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

1 个答案:

答案 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);