Nie jestem mocny w regexpach tongue.gif przede wszystkim nie znalazłem dotychczas rozwiązania, którego szukam. To, czego potrzebuję różni się od przedstawionego przykładu, ale najlepiej oddaje praktycznie wykorzystanie i myślę, że będzie najprościej zrozumieć o co w nim chodzi smile.gif
Źródło:
  1. <div>test</div>
  2. tresc
  3. <a href="/moj_link" target="_blank">test</a>
  4. tekst
  5. <ol start=1><li>test</li></ol>
  6. jeszcze jakieś śmieci
  7. <a href="/moj_link2" target="_blank" class="menulink" id="trzeci" title="tekst">xxx</a>
(wiem, że start=1 można uznać za niefartowne, ale sprawa dotyczy braku uszu)

Czy jest możliwe takie skonstruowanie preg_match, by generował taki rezultat:
Kod
Array
Array
(
    [0] => Array
        (
            [0] => <div>
            [1] => div
        )

    [1] => Array
        (
            [0] => <a href="/moj_link" target="_blank">
            [1] => a
            [2] => href
            [3] => /moj_link
            [4] => target
            [5] => _blank
        )

    [2] => Array
        (
            [0] => <ol start=1>
            [1] => ol
            [2] => start
            [3] => 1
        )

)
i tak dalej. (pomijam w ogóle kwestię treści pomiędzy tagami i tagami zamykającymi)

Wykorzystuję flagę PREG_SET_ORDER. Część takiego wyrażenia umiem skonstruować, ale nie wiem, czy jest możliwe takie skonstruowanie wyrażenia, by "samo się zapętlało". Coś w stylu:
#<([[:alpha:]]*)[i tutaj 'pętla']>#
a jeśli nie, czy jedynym sensownym rozwiązaniem jest najpierw sprawdzenie czy jakieś atrybuty istnieją, a jeśli tak, to dopiero je parsować kolejnym preg_match? To jedyna alternatywa, jaka przychodzi mi do głowy.