Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z preg_match
Forum PHP.pl > Forum > Przedszkole
mefistofeles
Mam takiego stringa:
'gatunek: Dramat'

chce wyciągnąć wszystko za gatunek: czyli słowo Dramat i robię to tak:

  1. $gatunekreg = '/gatunek:(.+?)/';
  2. preg_match_all($gatunekreg, $gatunek, $gatunek);
  3. print_r($gatunek);


Niestety nie wycuąga odpowiednich danych.
Próbowałem dodawać na końcu $ i na początku ^ ale też lipa

Problem polega na tym, że jak to co chce wyciągnąć jest na końcu (ostatni element stringa)
to nie mogę dostać tego co potrzebuje, jeśli jednak za słowem Dramat byłby chociaż " czyli string byłby taki:

'gatunek: Dramat"'

to za pomocą takiego wyrażenia:

  1. $gatunekreg = '/gatunek:(.+?)"/';


już spokojnie pobiera mi to co trzeba czyli 'Dramat'

Jak to zrobić w tym przypadku (element do pobrania jest ostatnim elementem stringa) ?
varez
naucz sie mniej bełkotliwie pisać, będzie łatwiej zrozumieć..

Twój wzorzec wybierze Ci też spację btw: " Dramat"

nie rozumiem co chciałeś osiągnąć tym:
(.+?)
ten pytajnik ..
Chelo
  1. $gatunekreg = 'gatunek: Dramat';
  2. preg_match_all('#gatunek: (.*?)#', $gatunekreg, $gatunek);
varez
Cytat(Chelo @ 16.04.2010, 14:58:20 ) *
  1. $gatunekreg = 'gatunek: Dramat';
  2. preg_match_all('#gatunek: (.*?)#', $gatunekreg, $gatunek);


jesteś pewien?
Kod
Array
(
    [0] => Array
        (
            [0] => gatunek:
        )

    [1] => Array
        (
            [0] =>
        )

)


No i ja jestem za naprowadzaniem ludzi na rozwiązanie niż na tacy
mefistofeles
No właśnie, nie za bardzo to działa...
kubek15
  1. $szukaj = '/gatunek\: (.*?) \'/s';
  2.  
  3. $tresc = preg_match_all($szukaj,$gdzie,$zwrot);


zobacz to
varez
zainteresuj sie pytajnikiem co mówiłem.
no i polecam Ci moj ulubiony kurs regularnych dla php:
http://dzek.metal.info/reg.html

(skopiowałem go do siebie, ponieważ orygialny w necie ma błędy, autor nie reaguje na kontakt od paru lat :/)


EDIT

Cytat(kubek15 @ 16.04.2010, 15:13:45 ) *
  1. $szukaj = '/gatunek\: (.*?) \'/s';
  2. $tresc = preg_match_all($szukaj,$gdzie,$zwrot);

zobacz to


Kod
Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
        )

)


też ładnie.. ale może sprawdzajcie Wasze rozwiązania przed dodaniem??
Chelo
  1. $gatunekreg = 'gatunek: Dramat';
  2. preg_match('#gatunek: ([a-zA-Z]+)#', $gatunekreg, $gatunek);
  3.  
  4. print_r($gatunek);
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.