2015-01-21 3 views
0
<h1>title 1</h1 w:id="0"/><p>content</p><h1>title 2</h1 w:id="1"/>... 

Я хочу, чтобы заменить w:id="0"/ от </h1 w:id:="0 or 1 ect "/>preg_replace: Регулярное выражение не работает

Я использую этот код:

preg_replace("</h1 (.*?)>",'',$html) 

Но это больше не работает

+1

Определение "не работает". –

+1

Возможно, вам нужны дополнительные [разделители регулярных выражений] (http://php.net/manual/en/regexp.reference.delimiters.php). – mario

+1

Просто добавьте немного: что вы получаете сейчас, что вы ожидаете и все ваши попытки! – Rizier123

ответ

0

Вы пропускаете разделители в вашем регулярном выражении.

Для регулярного выражения нужна «начальная отметка» и аналогичная «финишная метка», поэтому PHP может интерпретировать ее содержимое как совпадение со всеми его флагами.
Без распознанных разделителей невозможно отличить простой текст от регулярного выражения.

Попробуйте это регулярное выражение:

@</h1 (.*?)>@ 

Или:

~</h1 (.*?)>~ 

PHP поддерживает несколько разделителей, как <> и /.


Как примечание стороны, я хотел бы предложить следующее регулярное выражение:

~</h1([^>]+)?>~i 
0

попробовать это

preg_replace("/<\/h1 (.*?)>/i",'</h1>',$html); 
Смежные вопросы