2013-06-21 7 views
0

Я пытаюсь очистить базу данных cms: все содержимое имеет встроенный стиль, и мне нужно их разбить.Шаблон Regex не работает в конкретном случае

У меня много вложенных тегов, поэтому я пытаюсь заменить тег <span><h3> (я уверен, что заголовки не вложены), а затем с помощью HTMLPurifier я буду чистить другие теги.

Я пишу эту строку, чтобы заменить <span> тег <h3>:

$string = preg_replace('/<span style="line-height: 17pt; font-family: helvetica; color: rgb\(85, 85, 85\); font-size: 13pt; font-weight: bold;">(.*?)<\/span>/', '<h3>$1</h3>',$string); 

Он работает в любой ситуации, кроме мазута для этого:.

<span style="line-height: 17pt; font-family: helvetica; color: rgb(85, 85, 85); font-size: 13pt; font-weight: bold;">"Rischio obsolescenza" per i lettori Blu-ray</span> 

Может быть "в тексте проблема

Как это исправить?

ответ

1

Нет, кавычки не являются проблемой, и регулярное выражение действительно соответствует моим тестам. Вы уверены, что у вас нет новой строки где-то посередине, потому что точка не соответствует им, если вы не используете модификатор /s. Поэтому, пожалуйста, попробуйте

$string = preg_replace('/<span style="line-height: 17pt; font-family: helvetica; color: rgb\(85, 85, 85\); font-size: 13pt; font-weight: bold;">(.*?)<\/span>/s', '<h3>$1</h3>',$string);