Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia Regularne problem
buker
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 8.01.2011
Skąd: Warszawa

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


Witam mam problem z wyrażeniami regularnymi.
  1. /dev/sda1 93868 21959 67141 25% /
  2. /dev/sda6 197195 116541 70637 63% /media/Dane
  3. ...


Mam taki tekst z tym że tych wierszy może być dużo więcej.

Musze się dobrać do pierwszej i 2 wartości w każdym wierszu i je zsumować(pierwsza wartość pierwszy wiersz + pierwsza wartość 2 wiersz .... i tak dalej.)

Nie zbyt rozumiem wyrażenia regularne i prosił bym o pomoc.
/dev/(zamiast sda1 może być wiele rożnych rzeczy) tak samo na końcu /medi/Dande nie koniecznie musi być takie, zawsze będzie się zaczynać od "/")
Myślę nad czymś takim ale trochę się pogubiłem ;/
  1. $disktotal = preg_replace('^(/dev/)([A-Z0-9][A-Z)-9_-]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
daniel1302
post
Post #2





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


  1. <?php
  2. $text =
  3. "/dev/sda6 197195 116541 70637 63% /media/Dane
  4. /dev/sda1 93868 21959 67141 25% /";
  5. //Dzieli tekst co linike;
  6. $text = preg_split('/\n/', $text);
  7. $pattern = '/^\/{1}(.*)?\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+\%{1})\s+\/{1}(.*)?$/';
  8.  
  9.  
  10. $matches = array();
  11. //Sprawdź każdą linikę
  12. foreach ($text as $value)
  13. {
  14. preg_match($pattern, $value, $match);
  15. $matches[] = $match;
  16. }
  17. echo '<pre>';
  18. print_r($matches);
  19. echo '</pre>';

I zwraca ci to taki wynik

Cytat
Array
(
[0] => Array
(
[0] => /dev/sda6 197195 116541 70637 63% /media/Dane
[1] => dev/sda6
[2] => 197195
[3] => 116541
[4] => 70637
[5] => 63%
[6] => media/Dane
)

[1] => Array
(
[0] => /dev/sda1 93868 21959 67141 25% /
[1] => dev/sda1
[2] => 93868
[3] => 21959
[4] => 67141
[5] => 25%
[6] =>
)

)


Ten post edytował daniel1302 4.12.2011, 21:04:27
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 13:36