Esatto ... l'espressione .+ è "possessiva" cioè si "mangia" quanti caratteri il più possibile!!!Originariamente inviato da gasmor
ho difficoltà con un'espressione regolare
ho scritto queste righe:
che con un link di questo genere:Codice PHP:if(eregi("<a(.+)>(.+)<\/a>", $test, $regs)) {
$titolo = $regs[2];
echo ' - '.$titolo.'
';
}
questo è un link
mi tira fuori appunto: questo è un link (che è quello che vorrei)
ora se ho un link fatto inq uesto modo:
questo è un link
ottengo solo: è un link
perchè, giustamente, l'espressione regolare considera l'ultimo > individuato.
Con eregi non credo che si possa fare molto, però puoi usare preg_match. Usa questo:
Il ? dopo .+ indica che il match deve essere "ungreedy", cioè non così "ingordo" di caratteri.Codice PHP:...
if(preg_match("/<a(.+?)>(.+)<\/a>/", $test, $regs)) {
...

Rispondi quotando