Искомая строка:
'.$text.'
';
echo 'Ищем и разделяем % (выделено красным) и по 2-е шестнадцатиричные цифры без % (выделено синим):
'.preg_replace('/(\%)|([0-9a-f]{2}+)/','$1$2',$text).'
';
echo 'Ищем 2-е шестнадцатиричные цифры с %:
'.preg_replace('/(\%[0-9a-f]{2}+)/','$1',$text).'
';
?>