Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: preg_match hakuehto

Tumettaja [21.12.2008 14:56:09]

#

Yritän saada poimittua linkin välissä olevan sanan, ja itse linkin koodi näyttää tältä:

<a href="/testi.php?id=869754&mod;i=3">sana</a>

Olen yrittänyt seuraavanlaista hakuehtoa mutta se ei näytä toimivan:

"/<a href="\testi.php?id=(.*)&mod;i=3">(.*?)<\\/a>/"

Mikä tuossa käyttämässäni hakuehdossa on väärin?

Grez [21.12.2008 15:04:15]

#

Tumettaja kirjoitti:

Mikä tuossa käyttämässäni hakuehdossa on väärin?

"/<a href="\testi.php?id=(.*)&mod;i=3">(.*?)<\\/a>/"
          ^^1        ^2   ^^3        ^4

1 Kenoviiva pitäisi olla ennen ", ei sen jälkeen
2 Kysymysmerkki pitäisi escapeta eli \\?
3 Ei varsinaisesti virhe, mutta laittaisin \d+
4 Lainausmerkin edessä pitäisi olla \

Chiman [21.12.2008 15:27:00]

#

Tuo testi.php:ta ennen oleva kauttaviiva on haettavassa koodissa, joten kauttaviiva pitää löytyä regexpistäkin. Käyttäisin |-merkkiä regexpin aloitus- ja lopetusmerkkeinä, jotta kauttaviivoja ei tarvitsisi escapettaa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta