ugrás a tartalomhoz

PHP regex kérdés

reagenross · 2011. Ápr. 20. (Sze), 17.57
Sziasztok, egy egyszerűnek vélt regex kifogott rajtam. Azt szeretném megvalósítani, hogy vannak kulcs-érték párjaim, az érték oldalon egymástól "+" jellel elválasztva van sok értékem, ezek egyenként 1-4 numerikus karakter hosszúak lehetnek. Ezeket szeretném preg_match - el kigyűjteni. Tehát így nézhet ki az adatsor például:

"custom" => "+1+1943+49+333"

Azzal próbálkoztam, hogy a + jellel együtt gyűjtöm be a találatokat, majd a + jelet levágom róluk. De nem sikerült a mintámnak találatot elérnie.

Ezzel és különböző változataival próbálkoztam:
preg_match('/\+[0-9]{1,4}/',$subject,$matches); 
Úgy tudom, hogy a regex alapértelmezetten greedy, tehát az {1,4}-nek helyesnek kellene lennie.
 
1

Nem egyértelmű

vbence · 2011. Ápr. 20. (Sze), 18.07
Nem egyértelmű, hogy az egész kulcs-érték párt szeretnéd értelmezni, vagy csak az értéket.

Ha csak az értéket, akkor egy síma tokenizálás elegendő:
$tomb = explode (trim ($erek, "+"), "+");
2

csak az értéket

reagenross · 2011. Ápr. 20. (Sze), 18.19
Csak az értéket szeretném elemezni, így jó lesz amit írtál. Köszönöm.
3

Jó lesz,

thgab · 2011. Ápr. 21. (Cs), 06.28
csak az explode paramétereit cseréld fel.
Használhatsz reguláris kifejezést is, de akkor a preg_macth_all eljárást használd.
preg_match_all('/\+(\d{1,4})/',$ertek,$tomb);
4

Van egy jo doksim

Karvaly84 · 2011. Ápr. 22. (P), 06.00