Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyciąganie cyfr
adam882
post 27.12.2011, 16:58:41
Post #1





Grupa: Zarejestrowani
Postów: 289
Pomógł: 1
Dołączył: 2.11.2007

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


Witam

Mam stringa o takiej wartości: to-jest-2-tekst-32

W jaki sposób za pomocą regułki mogę wyciągnąć z niego cyfrę 32 (chcę, aby regułka sprawdzała, czy na końcu tego stringa jest jakaś cyfra).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Korab
post 27.12.2011, 17:04:07
Post #2





Grupa: Zarejestrowani
Postów: 202
Pomógł: 36
Dołączył: 10.06.2011
Skąd: Dokąd

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


Czy na końcu tego stringa jest LICZBA, czy CYFRA? Jeżeli liczba, to tak (zakładając, że te stringi będą miały schemat XXX-XXX-XXX):
  1. $string = 'to-jest-tekst-32';
  2. $string = explode('-',$string);
  3. $ile = count($string);
  4. if (is_numeric($string[$ile]))
  5. echo 'To jest liczba.';
  6. else
  7. echo 'To nie jest liczba!';


Ten post edytował Korab 27.12.2011, 17:05:22
Go to the top of the page
+Quote Post
adam882
post 27.12.2011, 17:11:20
Post #3





Grupa: Zarejestrowani
Postów: 289
Pomógł: 1
Dołączył: 2.11.2007

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


dzięki, ale czy mógłby mi ktoś pomóc zrobić coś takiego w preg_match? Żeby z tego stringa po przefiltrowaniu zostawała tylko końcowa cyfra?
Go to the top of the page
+Quote Post
mortus
post 27.12.2011, 17:20:28
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


[0-9]+$ jeśli liczba jest na końcu łańcucha znaków. A jeśli nie, to: ([0-9]+)[a-z-]*$.

EDIT1: Drugi wzorzec służy do wyciągnięcia liczby zarówno w takim ciągu: "to-jest-2-tekst-32", jak i w takim: "to-jest-2-tekst-32-costam".

EDIT2: Jeśli regułka ma sprawdzać tylko to, czy na końcu łańcucha znaków jest cyfra, to użyj takiej: [0-9]$ i powinno starczyć.

Ten post edytował mortus 27.12.2011, 17:28:30
Go to the top of the page
+Quote Post
darko
post 27.12.2011, 17:25:55
Post #5





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


  1. $test = 'to-jest-tekst-32';
  2. preg_match_all('/[0-9]/', $test, $hits);
  3. var_dump($hits);

lub:

  1. $test = 'to-jest-tekst-32';
  2. $i = 0;
  3. $return = '';
  4. while($i <= strlen($test) - 1)
  5. {
  6. $temp = $test[$i];
  7. if(is_numeric($temp))
  8. $return .= $temp;
  9.  
  10. $i++;
  11. }
  12. var_dump($return);


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:37