Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z preg_match, wyrażenie nie pasuje do wzorca, gdy dane są na końcu stringa
mefistofeles
post
Post #1





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


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) ?

Ten post edytował mefistofeles 16.04.2010, 12:58:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
varez
post
Post #2





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 17.06.2007

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


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 ..
Go to the top of the page
+Quote Post
Chelo
post
Post #3





Grupa: Zarejestrowani
Postów: 178
Pomógł: 8
Dołączył: 19.03.2007

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


  1. $gatunekreg = 'gatunek: Dramat';
  2. preg_match_all('#gatunek: (.*?)#', $gatunekreg, $gatunek);
Go to the top of the page
+Quote Post
varez
post
Post #4





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 17.06.2007

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


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
Go to the top of the page
+Quote Post
mefistofeles
post
Post #5





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 23.06.2009

Ostrzeżenie: (10%)
X----


No właśnie, nie za bardzo to działa...

Ten post edytował mefistofeles 16.04.2010, 14:07:42
Go to the top of the page
+Quote Post
kubek15
post
Post #6





Grupa: Zarejestrowani
Postów: 278
Pomógł: 3
Dołączył: 28.06.2008
Skąd: PL

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


  1. $szukaj = '/gatunek\: (.*?) \'/s';
  2.  
  3. $tresc = preg_match_all($szukaj,$gdzie,$zwrot);


zobacz to
Go to the top of the page
+Quote Post
varez
post
Post #7





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 17.06.2007

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


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??

Ten post edytował varez 16.04.2010, 14:17:18
Go to the top of the page
+Quote Post
Chelo
post
Post #8





Grupa: Zarejestrowani
Postów: 178
Pomógł: 8
Dołączył: 19.03.2007

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


  1. $gatunekreg = 'gatunek: Dramat';
  2. preg_match('#gatunek: ([a-zA-Z]+)#', $gatunekreg, $gatunek);
  3.  
  4. print_r($gatunek);
Go to the top of the page
+Quote Post

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: 16.09.2025 - 13:54