Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrażenia regularne
Forum PHP.pl > Forum > Przedszkole
Frey
Witam, mam problem z wyrażeniami regularnymi. Chcę wyciągnąć 3 dane z takiego kawałku kodu html przypisanego do zmiennej:

Kod
$cosik= '%<b>[to chcę wyciągnąć]</b><div style="padding-left: 10px; font-size: 8pt;" class="color">
    
    <div>
    <input name="an" class="pollinput" value="o1" onclick="submit();" style="border: 0px none; vertical-align: middle;" type="radio">
    <span style="font-size: 7pt;" class="color">[to też chcę wyciągnąć]</span>
    </div>
    </div>
    
    </td>
    <td class="small" align="right" valign="bottom" nowrap="nowrap">
    &nbsp;&nbsp;<i>Created By</i>:</td><td align="right" valign="bottom" nowrap="nowrap">
    <div class="small" align="center"><a href="http://www.strona.pl/cosik.php?cos=[i to chcę wyciągnąć]&amp;menu=&amp;submenu=">%';


Jak powinno wyglądać wyrażenie regularne w tych miejscach (Chcę wyciągnąć obojętnie co tam będzie, znaki typu: %^&* też tam występują i niekiedy pole jest puste)? Dodam, że sprawdziłem na http://regexpal.com i podświetla mi kropki w adresie, oraz to co zaznaczyłem: onclick="submit();"
Jak to zrobić i ominąć to co podświetla jako wyrażenia regularne w tym całym kodzie? I czy dało by się to jakoś inaczej (prawdopodobniej szybciej) zrobić?

Pozdrawiam, Frey.
trike
jesli ten kod zawsze bedzie wygladal tak, to musisz dopasowac wyrazenie regularne do tego i sprawa zalatwiona.
  1. <?php
  2. echo preg_replace('/^%<b>(.+)</b>/','1',$cosik)
  3. ?>

nie probowalem ale moze sie uda
erix
Proszę o tag tematu.
Frey
Cytat(trike @ 1.04.2009, 18:48:52 ) *
jesli ten kod zawsze bedzie wygladal tak, to musisz dopasowac wyrazenie regularne do tego i sprawa zalatwiona.
  1. <?php
  2. echo preg_replace('/^%(.+)/','1',$cosik)
  3. ?>

nie probowalem ale moze sie uda

To nie o to chodzi -,- Wiem jak używać preg_match. Chodzi mi o to wyrażenie regularne. Kropka oznacza dowolny znak (litera, cyfra itd. prawda?) i tam gdzie oznaczyłem w kodzie: [to chcę wyciągnąć] etc. to właśnie chcę wyciągnąć dowolne dane stamtąd. Zważ na to, że w adresie w tym całym kodzie html:
Kod
http://www.strona.pl/cosik.php?cos=[i to chcę wyciągnąć]
są kropki które są jako wyrażenie regularne interpretowane. Wie ktoś jak to ominąć?

Cytat(erix @ 1.04.2009, 19:59:37 ) *
Proszę o tag tematu.

Dodałem.
trike
jesli zaczailem o co ci chodzi to przed kropka daj backslash \. , wtedy interpertuje kropke jako kropke a nie jako dowolny znak
Fifi209
Cytat
http://www.strona.pl/cosik.php?cos=[i to chcę wyciągnąć]


$_GET ?
bluesqad
Kod
\[.*\]


do tej linijki (dokladnie tą wklejalem nie calosc) <div class="small" align="center"><a href="http://www.strona.pl/cosik.php?cos=[i to chcê wyci±gn±æ]&menu=&

dziala bez zarzutu. wyciagnelo tyle ze z nawiasami, ale to mozesz sobie je wyciac (pierwszy i ostatni znak

testowane na: http://maciek.lasyk.info/regexp_checker.html
erix
Albo wystarczy wyciągnąć cały URL - potem potraktować ciąg parse_url" title="Zobacz w manualu PHP" target="_manual i parse_str" title="Zobacz w manualu PHP" target="_manual.
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.