Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażaj sie regularnie :-), Problem z wyrażeniem
cezary188
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 31.07.2010

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


Otoz mam problem z wyrażeniami. Potrzebuje wyciaganc przykladowo z tego:
  1. <h1 title="Apocalypse.2010.PL.DVDRip.XViD.rar">
to:
  1. Apocalypse.2010.PL.DVDRip.XViD.rar
czyli sama nazwe nie bardzo wiem jak zaznaczyc zeby po znalezieniu tagu h1 title wyciagal tylko sama nazwe bo narazie wyciga mi caly tag. Dodam ze nie mam mozliwosci filtracji wyniku wiec jedyne co moge to odpowiednio skonstruowac wyrazenie zeby zwracalo tresc w zadanej formie. Ktos pomoze?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cezary188
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 31.07.2010

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


Mozna tak
  1. '<h1 title=".*.">'
a mozna i tak
  1. '<h1 title=\"([a-zA-Z0-9._\!\@\#\$\%\^\&\*\(]*)">'
jedno i drugie powoduje mniej wiecej to samo.
Go to the top of the page
+Quote Post
by_ikar
post
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Cytat(cezary188 @ 26.12.2011, 16:26:20 ) *
Mozna tak
  1. '<h1 title=".*.">'
a mozna i tak
  1. '<h1 title=\"([a-zA-Z0-9._\!\@\#\$\%\^\&\*\(]*)">'
jedno i drugie powoduje mniej wiecej to samo.


Ale po co sobie wydłużać niepotrzebnie wyrażenie, raz pakując duże litery, co można zrobić stosowną flagą, a dwa - umieszczając wszystkie możliwe znaczniki.. Najprościej to użyć czegoś co wystąpić nie może. Z racji że title ma swój początek który zaczyna cudzysłów lub apostrof, to koniec ma własnie jako cudzysłów lub apostrof. Zatem najlogiczniej byłoby użyć negacji cudzysłowia lub apostrofu:

  1. <?php
  2.  
  3. $str = '<h1 title="Apocalypse.2010.PL.DVDRip.XViD.rar"> ';
  4.  
  5. preg_match('/<h1 title="([^"]+)">/', $str, $znalezione);
  6.  
  7. echo '<pre>'.print_r($znalezione[1], true).'</pre>';
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: 11.10.2025 - 22:22