Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wyciąganie danych ze stringa
styryl
post
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 27
Dołączył: 16.04.2008
Skąd: Bakutilu

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


Siema,

Jak się za to zabrać, mam string:

  1. #OK BOG 11-03-15 10:42 p1 33,97zl/wymiana pani o 11h musi wyjcs


i mam z niego wygrzebać: 33,97 - czyli cenę przy czym zmieniać się mogą w stringu:
1. Cały początek "#OK BOG 11-03-15 10:42 p1"
2. Cena, może wyglądac tak 33,97zl, 33,97zł, 33.97zl, 33.97zł
3. Tył też może się zmieniać "/wymiana pani o 11h musi wyjcs"

pzdr

Go to the top of the page
+Quote Post
cudny
post
Post #2





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Podaj 5 możliwości zmiany stringa (najróżniejsze kombinacje) i czy to:" /wymiana pani o 11h musi wyjcs" zawsze jest po "/" i czy inne / moga wystąpi i ewentualnie gdzie...
I zacznij czytać o preg_match(); bo nie dam gotowca (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
styryl
post
Post #3





Grupa: Zarejestrowani
Postów: 223
Pomógł: 27
Dołączył: 16.04.2008
Skąd: Bakutilu

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


wymyśliłem narazie coś takiego:

  1. $a = explode("/", '#OK BOG 11-03-15 10:42 p1 33,97zl/wymiana pani o 11h musi wyjcs');
  2.  
  3. $b = explode(" ", $a['0']);
  4. $ile = count($b);
  5.  
  6. for ($i = 0; $i <= $ile; $i++) {
  7.  
  8. echo $b[$i].'<br>';
  9.  
  10. if(preg_match('/^[0-9]/', $b[$i]))
  11. {
  12. echo '<p>jest</p>';
  13. }
  14. else
  15. {
  16. echo '<p>nie ma</p>';
  17. }
  18.  
  19. }
  20.  


zwraca:

  1. #OK
  2.  
  3. nie ma
  4. BOG
  5.  
  6. nie ma
  7. 11-03-15
  8.  
  9. jest
  10. 10:42
  11.  
  12. jest
  13. p1
  14.  
  15. nie ma
  16. 33,97zl
  17.  
  18. jest


Jak to teraz doprecyzować?

dodałem do wyrażenia: /^[0-9].*[,\\.]/ czy to załatwi sprawę?

Ten post edytował styryl 15.03.2011, 13:39:31
Go to the top of the page
+Quote Post
cudny
post
Post #4





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Napisałem ci żebyś podał kilka przykładów jak może się to zmieniać i czy / może wystąpić raz czy kilka razy i w których miejscach - domyślam się że to co znajduje się za / to komentarz użytkownika więc pewnie może się tam znajdować kilka razy / czyli np. /pani1/pani2/pani3 wychodzą razem (IMG:style_emoticons/default/smile.gif) wtedy twój explode nie zadziała.
A co do:
/^[0-9].*[,\\.]/ czy to załatwi sprawę?
to proponuję /[0-9]+/
Daj kilka przykładów to będziemy myśleć - i to takich jakie mogą się zdarzyć i wymyśl takie mało prawdopodobne ale realne - pomyślimy (IMG:style_emoticons/default/smile.gif)
Poza tym można w jednym preg_match(); wydobyć wszystkie info (IMG:style_emoticons/default/smile.gif) nazywając poszczególne wyrażenia (podpowiedź - (?<zloty>([zZ]{1}[lłLŁ]{1})) )
Artykuł pomocniczy (IMG:style_emoticons/default/smile.gif) nic lepszego nie znalazłem jeszcze (IMG:style_emoticons/default/tongue.gif) pomimo że często używam regexp to korzystam z tej "ściągi" (IMG:style_emoticons/default/biggrin.gif)
http://www.piotrosz.aspnet.pl/post/Wyrazen...-sciagawka.aspx

Acha - tutaj będziesz używał raczej preg_match_all(); (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował cudny 15.03.2011, 13:53:54
Go to the top of the page
+Quote Post

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: 15.09.2025 - 04:36