Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenie regularne - szukanie wszystkich tagów html
Forum PHP.pl > Forum > PHP
Mephis
Witam.

Mam problem z utworzeniem pewnego wyrażenia regularnego.
Mianowicie, chodzi mi o takie, które poszuka mi wszystkich prostych tagów html (np. <b>, <strong>, <u> itp.) wraz z ich zawartością (kolejnych tagów z zawartością...)

Utworzyłem coś takiego (regex101.com/r/rC2cE6/1):
Cytat
(?<html_tag>(?<open>\<(?<tag>\w+)\>))(?<content>(\g<html_tag>)|.*)(?<close>\<\/\k<tag>\>)


Chciałbym otrzymać taki wynik (coś na ten wzór):
CODE
MATCH 1
html_tag [0-3] `<b>`
open [0-3] `<b>`
tag [1-2] `b`
content [3-47] `pogrubienie<i>kursywa</i>i znowu pogrubienie`
close [47-51] `</b>`

MATCH 2
html_tag [14-28] `<i>`
open [14-18] `<i>`
tag [15-16] `i`
content [17-24] `kursywa`
close [24-28] `</i>`


Czy można przy pomocy jednego wyrażenia regularnego otrzymać takie 2 wyniki?
Jak miałoby wyglądać takie wyrażenie?
LowiczakPL
nie jest to rewelacyjne rozwiązanie ale na szybko jestem w stanie tylko tyle pomóc

jeśli chcesz szukać zagnieżdżonych tagów to może tak szukaj kolejnej ścieżki

if (isset($matches['content'])) preg_match($re, $matches['content'], $matches);
var_dump($matches);

i tak dalej dla kolejnej

if (isset($matches['content'])) preg_match($re, $matches['content'], $matches);
var_dump($matches);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.