2012-03-26 4 views
0

так что я сделалнеизвестная ошибка Модификатор в моей preg_replace попытке

$subject = 'sakdlfjsalfdjslfad <a href="something/8230">lol is that true?</a> lalalala'; 

$subject = preg_replace('<a href="something\/([0-9]+)">(.+?)<\/a>', '$1', $subject); 

echo $subject; 

при этом цель состоит в том, чтобы иметь $ SUBJECT возврат товара

'sakdlfjsalfdjslfad lol is that true? lalalala' 

, но затем PHP вернулся

warning: preg_replace(): Unknown modifier '(' 

что сделал я делать неправильно?

ответ

1

шаблону нужны разделители - косые черты, например.

'/<a href="something\/([0-9]+)">(.+?)<\/a>/' 
1

Вы должны разделители вокруг шаблона:

$subject = preg_replace('#<a href="something/([0-9]+)">(.+?)</a>#', '$1', $subject); 
0

PCRE (Perl Compatible Regular Expression) должно быть в окружении разделителей, так

<a href="something\/([0-9]+)">(.+?)<\/a> 

должен быть

/<a href="something\/([0-9]+)">(.+?)<\/a>/ 

Я использовал sl пепел (/) - но есть много вариантов

При использовании функции PCRE, необходимо, чтобы картина заключены разделителями. Разделителем может быть любой небуквенный, символ без обратного слэша, символ без пробелов.

Часто используемые разделители - это косые черты (/), знаки хеша (#) и тильды (~). Ниже приведены все примеры допустимых шаблонов .

here are the docs for delimiters in pregex

Смежные вопросы