Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenie regularne
Forum PHP.pl > Forum > Przedszkole
Immanuel
  1. <?php
  2. $zmienna = preg_replace(
  3. '|.*aaa(..)bbb.*|s',
  4. '$1',
  5. $data
  6. );
  7. ?>


Potrzebuję wyciągnąć spomiędzy wyrażeń aaa i bbb liczbę.
Co zrobić żeby skrypt zapisał mi dowolną liczbę ?
Jak używam .* to nie działa, klasa \d też nie działa (to chyba tylko wyciąga cyfry).
Liczba może być jedno, dwu, trzy, cztero lub nawet pięciocyfrowa.

EDIT: już rozkminilem:

Kod
<?php
'|.*aaa([\d]{1,5})bbb.*|s',
?>
erix
Kod
aaa\d*bbb
Immanuel
a jeszcze jedno pytanie:

mam plik, w ktorym znajduje sie cos takiego:

Kod
gha;ljhga;ljshg;lasg

aaabbbccc

gha;ljhga;ljshg;lasg

bbbaaaccc

gha;ljhga;ljshg;lasg


Jak za pomocą wyr. regularnego wyciagnac kolejno: bbb spomiędzy aaa i ccc; oraz aaa spomiedzy bbb i ccc questionmark.gif

Napisałem coś takiego:
  1. <?php
  2.  
  3. $plik = "2.htm";
  4. $plik2 = "wynik.txt";
  5. $uchwyt2 = fopen($plik2,"a");
  6. $uchwyt = fopen($plik,"r");
  7. $data = fread($uchwyt,filesize($plik));
  8.  
  9. '|.*aaa(.*)ccc.*|s',
  10. $data,
  11. $tytul_wyciagacz,
  12. PREG_SET_ORDER
  13. );
  14.  
  15. '|.*bbb(.*)ccc.*|s',
  16. $data,
  17. $tytul_wyciagacz2,
  18. PREG_SET_ORDER
  19. );
  20.  
  21. $tytul = "<td>" . $tytul_wyciagacz[0][1] . $tytul_wyciagacz2[0][1] . "</td>";
  22.  
  23. fputs($uchwyt2,$tytul);
  24.  
  25. fclose ($uchwyt);
  26. fclose ($uchwyt2);
  27. ?>


Ale nie działa sad.gif
EDIT: Dlaczego dodaje mi znak \ przed cudzysłowem w kodzie php questionmark.gif
EDIT2: Już nie ma przed " znaku \ winksmiley.jpg
EDIT3: Znowu jest..
EDIT4: Nie wiem o co w tym biega... :|
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.