$newText = preg_replace('/%.+?%/', 'replacedText', $text);
Должен сделать это. replacedText
должно быть тем, что вы хотите заменить %sometxt%
на.
регулярное выражение %.+?%
означает
Изобразите знак %
, за которым следует любой символ, пока я не найду другой знак %
.
?
делает выражение 'ленивым', поэтому оно будет соответствовать первому вхождению %
.