Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyrażenie regularne przeszukujące string
S_Olewniczak
post 31.08.2009, 20:51:31
Post #1





Grupa: Zarejestrowani
Postów: 189
Pomógł: 1
Dołączył: 28.01.2008

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


Proszę o pomoc, ponieważ nie mogę się jakoś wgryźć, w wyrażenia regularne i i bardziej skomplikowane sprawiają mi trudności. A, więc do rzeczy. Najłatwiej opisać mi mój problem przykładem. Mam taki string:
Kod
required,chars[1,2,3,4,5,6,7,8,9, p], aaa, ala[e,r,t,y]

I chcę tak przetworzyć ten kod aby uzyskać tablicę:
Kod
array(
'required',
'chars[1,2,3,4,5,6,7,8,9]',
'aaa',
'ala[e,r,t,y]'
)

Chodzi oto, żeby kod dzielił string, na podstringi, według przecinków, ale nie zwracał uwagi na przecinki w nawiasach kwadratowych. Jak mogę tego dokonać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Pawel_W
post 31.08.2009, 21:03:28
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


substr + explode
wycinasz ten kawałek z nawiasami i dzielisz
Go to the top of the page
+Quote Post
S_Olewniczak
post 1.09.2009, 11:16:02
Post #3





Grupa: Zarejestrowani
Postów: 189
Pomógł: 1
Dołączył: 28.01.2008

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


Nie rozumiem worriedsmiley.gif . Mógłbyś mi to wyjaśnić bardziej szczegółowo, albo podać prostszą metodę?
Go to the top of the page
+Quote Post
phpion
post 1.09.2009, 11:25:03
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Zmień "strukturę", a będzie ci prościej.
Kod
required|chars[1,2,3,4,5,6,7,8,9,p]|aaa|ala[e,r,t,y]

Dzielisz teraz po | i masz to co chcesz. Używanie jednego separatora do wszystkiego to prośba o problemy.
Go to the top of the page
+Quote Post
S_Olewniczak
post 1.09.2009, 11:33:00
Post #5





Grupa: Zarejestrowani
Postów: 189
Pomógł: 1
Dołączył: 28.01.2008

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


Niestety, w moim skrypcie może zajść taka sytuacja:
Kod
required|chars[1,2,3,4,5,6,7,8,9,p, |]|aaa|ala[e,r,|,t,y]

I w tedy Twoje rozwiązanie nie sprawdzi się.
Go to the top of the page
+Quote Post
glh
post 1.09.2009, 11:45:41
Post #6





Grupa: Zarejestrowani
Postów: 97
Pomógł: 20
Dołączył: 18.12.2007
Skąd: Poznań

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


To zamiast separatora | daj cos co sie nie powtorzy, np. ciag "alamakotakotmaaids". Oczywiscie nie musi on byc taki dlugi. Separator moze byc dowolny i wtedy skorzystac z funkcji explode.


--------------------
Go to the top of the page
+Quote Post
S_Olewniczak
post 1.09.2009, 11:51:04
Post #7





Grupa: Zarejestrowani
Postów: 189
Pomógł: 1
Dołączył: 28.01.2008

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


Czyli rozumiem, że rozwiązanie tego problemu, dokładnie jak chcę jest niemożliwe?
Go to the top of the page
+Quote Post
phpion
post 1.09.2009, 11:58:20
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Jest możliwe ale przy założeniu rozsądnych reguł (np. inny separator). Po co utrudniać sobie życie? Piszesz, że w przypadku mojego przykładu może zajść potrzeba użycia | w innym miejscu. Zgadza się - "może". Natomiast w twoim przykładzie juz z założenia zachodzi konflikt separatorów.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:23