如何使用preg_replace保留一些字符

时间:2011-08-16 19:28:43

标签: php regex

我有这个PHP代码

$audio_name=preg_replace('/[&#].*[;]/','',$audio['name'][1][$i]);

但我想保留法语字符

2 个答案:

答案 0 :(得分:1)

您可以使用preg_replace_callback,如果要删除元素,可以在回调中返回'',如果要保留匹配元素,则返回匹配元素。

注意:.*贪婪,直到最后;才会吃掉所有内容,因此请使用[^;]*

答案 1 :(得分:1)

例如,用BBBBBBBB替换AAAAAAAA:

$string= 'start AAAAAAAA end';
echo preg_replace('/(start)(.*?)(end)/i', (!empty('$1') ? '$1' : '').'BBBBBBBB'.(!empty('$2') ? '$2' : '') , $string);