Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][regexp] wyciągnięsie liczb ze stringów
Forum PHP.pl > Forum > Przedszkole
TomASS
Witajcie, mam takie stringi:
Cytat
GD. NADL. 4,00
ZAP. NADG. 157,65
GD. NADL. 12,00
DOP. 26,28

itp...


chciałbym aby funkcja zwróciła mi tabelę, gdzie string (jeden z powyższych) będzie podzielony na opis + liczba (np. zwróci tablicę).
Wiem, że powinienem użyć coś z rodziny regexp, ale jakoś po licznych próbach nie potrafię sklecić wyrażenia regularnego :/
abort
To by było mniej więcej tak (pisane bez testów):
  1. preg_replace ('/(.*)\s([0-9.,])+/', $linia, $tablica);

$linia to jedna linia z tego co zacytowałeś, podzielone rzeczy masz w $tablica
TomASS
niestety nie działa sad.gif

bardzo dziwne mam:
  1. preg_replace ('/[0-9]+(\,[0-9]+)?/', $string, $tablica);
  2. echo '<pre>';
  3. print_r($tablica);
  4. echo '</pre>';

gdzie string to:
Cytat
GD.NADL. 4,00

zwraca pustą tablicę :/

testując wyrażenie w http://regexpal.com/
dla:
Cytat
[0-9]+(\,[0-9]+)?

poprawnie mi podświetla 4,00

:/
abort
Trochę się pomyliłem. Ma być:
  1. preg_match ('/(.*) ([0-9.,]+)/', $linia, $tablica);

Nie preg_replace (jak podałem), ale preg_match. No i znak "+" ma być w środku nawiasu, a nie poza. Natomiast "print_r" na zmiennej $tablica daje wynik:
Kod
Array
(
    [0] => GD. NADL. 4,00
    [1] => GD. NADL.
    [2] => 4,00
)

Jak widać, indeksy zawierają:
- 0 - cała linia (to, co objął preg_match)
- 1 - to, co objął pierwszy nawias
- 2 - to, co objął drugi nawias
TomASS
Dziękuję - o to chodziło smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.