Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyrażenie regularne - szukanie wszystkich tagów html, Szukanie tagów w tagach html
Mephis
post
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 1
Dołączył: 16.12.2012

Ostrzeżenie: (0%)
-----


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?

Ten post edytował Mephis 19.05.2016, 17:16:06
Go to the top of the page
+Quote Post
LowiczakPL
post
Post #2





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


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);


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 00:58