Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_replace - łatwe, a trudne
Forum PHP.pl > Forum > Przedszkole
sss
Dzień dobry, cześć i czołem.
Mam taki malutki problem - chcę zamienić w całym dokumencie takie coś:
"312,23 zł" na 312.23 (wyciąć " oraz ' zł' i zamienić ',' na '.', cyfry zostawić bez zmian). Próbuje i próbuje i cały czas, albo zamieniam wszystko na '.', albo nic sie nie dzieje. Juz nie mam siły do tych wyrażeń regularnych. Jak możecie to pomóżcie. Dzięki z góry

ok, takie coś stworzyłem (teraz tylko zostało spacje usunąć)
  1. $tresc = preg_replace('/"(.*?),(.*?)zł"/s', '$1.$2', $tresc);
emajl22
To może trim()?
amii
Powinno zadziałać. Przy okazji co robi ten modyfikator /s bo nie mogę tego znaleźć w źródłach ?

  1. $pat = '/"(.*?),(.*?)zł"/s';
  2.  
  3. function zamien($matches) {
  4. return $matches[1].'.'.$matches[2];
  5. }
  6.  
  7. $tresc = preg_replace_callback($pat, "zamien()", $tresc);

sweter
  1. // tak usuniesz spacje
  2. $zmienna_bez_spacji = str_replace(' ', '', '312,23 zł');
  3.  
  4. // tak zamienisz przecinek na kropkę
  5. $zmienna = str_replace(',', '.', '312,23 zł');

webdice
  1. $tresc = preg_replace('#"([0-9]+),([0-9]+) zł"#', '$1.$2', $tresc);
sss
Ok, dzięki za uwagi. Teraz mam jeszcze jeden problem chcę usunąć ze stringa wszystkie przecinki, które są w cudzysłowiu tzn.
NP. takie coś "dsd,fd,434,aa" na dsdfd434aa

EDIT:
no i jeszcze ma zostawiać nienaruszone takie wpisy: "," (jeden przecinek pomiędzy czudzysłowem)
amii
  1. $path = /[a-z0-9]+[^"],[^"][a-z0-9]+/i;
  2.  
  3. $tresc = preg_replace($path, '', $tresc);
sss
Nie działa worriedsmiley.gif
Może źle napisałem, chodzi mi o taką zamianę:

"2a,4ds,wecs","32,aa,dsfdsfdfdf" --> 2a4dswecs,32aadsfdsfdfdf
webdice
Nie czekaj na gotowe rozwiązanie, wykaż trochę inicjatywy.
sss
Cały czas przy tym siędzę :/.

Mam takie cuś, ale to mi wycina wszystko w cudzysłowach
  1. $tresc = preg_replace('/"(.*?)[,][.*?)"/s', '.', $tresc);
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-2024 Invision Power Services, Inc.