Как я могу найти все совпадения <element>что-то </element> с регулярным выражением? - PullRequest
0 голосов
/ 11 октября 2009

Итак, скажем, что у меня есть:

<any_html_element>maybe some whitespaces <br/>Some text</any_html_element>

И я хочу удалить первый <br/> после <any_html_element>.

Как я могу это сделать?

Ответы [ 2 ]

8 голосов
/ 11 октября 2009

Начните с использования не RegEx, а анализатора HTML, чтобы определить блок кода, которым вы хотите манипулировать.

Как только вы выделите реальный код, вы можете сделать замену, чтобы удалить <br/>.


Вот несколько ссылок на HTML-анализатор PHP для изучения:

2 голосов
/ 12 октября 2009

Поиск по этому регулярному выражению:

(<any_html_element>.*?)</br>

и заменить на:

$1

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

Если с any_html_element вы подразумевали, что хотите разрешить любой элемент, используйте это регулярное выражение:

(<\w[^<>]+>.*?)</br>

Текст замены остается прежним.

Хотя верно, что вы не можете анализировать HTML с помощью одного регулярного выражения, Uffo не пытается анализировать HTML. Он просто хочет удалить один тег. Регулярное выражение сделает это очень хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...