[PHP/RegExp] "Łapanie" od środka i od końca

Odpowiedz Nowy wątek
2006-09-23 21:33
0

Witam, czy jest możliwość aby jedno wyrażenie wyłapało mi wszystko w znacznikach, załóżmy kod xml:

< a>
< b>text< /b>
< /a>
< c>ce< /c>

zakładając że wszystko jest zamykane i jest to robione w dobrej kolejności, coś w stylu

/<(.?)>(.?)<\/\1>/

tylko działające jakby od środka bo to nie chyta już < b>text< /b> wyrzucone z szukania po znalezieniu < a />

drugie pytanie, czy jest możliwość aby wyrażenie łapało od końca a nie od początku, efekt taki mogę uzyskać odwracając string i odpowiednio wyrażenia a potem odwracając je z powrotem ale nie ma może na to jakiejś flagi czy czegoś (w php) ?


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-09-24 08:29
0

Pierwszego pytania nie rozumiem.

Co do drugiego, to mając ciąg: "1cos2" i Twoje wyrazenie chciałbyś dostać tylko 2 ?
Możesz zrobić preg_match_all i skorzystać z ostatniego pola złapanego do tablicy.


Pozostało 580 znaków

2006-09-24 10:54
0

pierwsze pytanie:
wyrażenie

/<(.?)>(.?)<\/\1>/

z

<a><b>text</b></a><c>ce</c>

łapie

<a><b>text</b></a><c>ce</c>
<a><b>text</b></a><c>ce</c>

a chciałbym (chociaż wiem że takie rzeczy to chyba tylko w erze):

<a><b>text</b></a><c>ce</c>
<a><b>text</b></a><c>ce</c>
<a><b>text</b></a><c>ce</c>

mógłbym użyć zagnieżdżenia czyli rekurencyjnie dla wyników odpalać znowu wyrażenie ale wydaje mi się że to za długo trwa, czy w ogóle jest sens tutaj używania wyrażeń regularnych ?
// dop: a nie - to jest jednak do przebolenia bo wcześniej mi się to wykonywało kilka sekund nawet ale teraz okazało się że miałem mały błąd w skrypcie i wykonuje się on 0.032 s - to jeszcze w normie

drugie pytanie:
wyrażenie (przykładowe)

/a(.*?)a/

z

a 1 a 2 a 3 a 4 a

łapie

a 1 a 2 a 3 a 4 a
a 1 a 2 a 3 a 4 a

a chciałbym:

a 1 a 2 a 3 a 4 a
a 1 a 2 a 3 a 4 a


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0