Искомая строка:
'.$text.'

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