Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne] RegExp
TheSnake
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 10
Dołączył: 5.06.2009

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


Witam, nie mam zielonego pojęcia gdzie mogę to napisać, uznałem, że Przedszkole będzie najlepsze.

Mam string
Cytat
Login:Password@method=arg1#arg2#arg3

I chce wszystko pobrac do tablicy. Mam problem z ostatnia częścią, przy takim regexie:
Cytat
^([\w]*):([\w]*)@([\w]*)=([\w\d]*)
pobiera
Cytat
1. Login
2. Password
3. ban_check
4. arg1

Muszę pobrać wszystkie argumenty, a ilośc ich jest zmienna. Nie wiem jak mogę "zapętlić" ostatnią część by pobierało wszystkie argumenty. Ktoś robił takie coś w wyrażeniach regularnych? Czy łatwiej będzie użyć explode?

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
by_ikar
post
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Jeżeli potrzebujesz rozbić ciąg, to najlepiej użyć do tego preg_split, zamiast masy explode. preg_match tego nie zrobisz, tak mi się przynajmniej wydaje, głównie z uwagi na zmienną ilość elementów które mogą zostać dopasowane.


  1. <?php
  2.  
  3. $matches = preg_split('~:|@|=|#~is', 'Login:Password@method=arg1#arg2#arg3');
  4.  
  5. echo '<pre>'.print_r($matches, true).'</pre>';
  6.  


Wynik:

Kod
Array
(
    [0] => Login
    [1] => Password
    [2] => method
    [3] => arg1
    [4] => arg2
    [5] => arg3
)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 16:13