Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyrażenia regularne - jak sformuować całkiem dowolny ciąg
Forum PHP.pl > Forum > Przedszkole
swist666
Witam,

mam taki ciąg

  1. $analiza = 'abc durewghearhg
  2. cde';


i chciałbym wydobyć za pomocą wyrażeń regularnych (tak chyba najprosciej) co jest pomiędzy "abc" a "cde". Normalnie wystarczyłoby zastosować taką funkcję:

  1. preg_match_all('/abc(.*)cde/', $analiza, $rezultat);
  2.  
  3. print_r("<pre>");
  4. print_r($rezultat);
  5. print_r("</pre>");


jednak jako, że oprócz standardowych znaków występuje tu znak złamania wiersza (tak się to chyba nazywa - chodzi mi o "\n" czyli potocznie enter) funkcja zwraca pustą tablicę sad.gif

Ktoś wie jak zmienić (.*) aby zastosowało się także to tego typu ciągów (dodam, że chciałbym aby funkcja działała również z ciągami typu abcblablalba124./][cde oraz nie koniecznie "zaczynające" i "kończące" na te dwie wartości - np. tra la la abc tekst cde bla bla )
Kużdo
  1. ^[a-zA-Z0-9]{3}[a-zA-Z0-9\s]*[a-zA-Z0-9]{3}$


Najpierw 3 znaki z zakresu dużych i małych liter (bez polskich) i cyfr od 0 do 9, później dowolna ilość liter (małych dużych, bez polskich) cyfr i spacji i na koniec muszą być 3 znaki koło siebie z zakresu a-zA-Z0-9.

Do środka musiałbyś dodać tylko znaki specjalne jak nawiasy itp.
Fifi209
Hmm

  1. <?php
  2.  
  3. $analiza = 'abc durewghearhg
  4. cde';
  5.  
  6. preg_match('#abc(.*?)cde#s', $analiza, $matches);
  7.  
  8. echo '<pre>';
  9.  
  10. print_r($matches);
  11.  
  12. ?>
swist666
nie wiem czym się różnie # zamiast / ani co oznacza "s" na końcu ale działą biggrin.gif

dzięki
Fifi209
Cytat(swist666 @ 9.08.2010, 15:38:13 ) *
nie wiem czym się różnie # zamiast /

http://www.php.net/manual/pl/regexp.reference.delimiters.php

Cytat(swist666 @ 9.08.2010, 15:38:13 ) *
ani co oznacza "s" na końcu

http://www.php.net/manual/pl/reference.pcr...n.modifiers.php
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-2025 Invision Power Services, Inc.