Originariamente inviato da gasmor
ho difficoltà con un'espressione regolare

ho scritto queste righe:

Codice PHP:
if(eregi("<a(.+)>(.+)<\/a>"$test$regs)) {
        
$titolo $regs[2];
        echo 
' - '.$titolo.'
 '
;

che con un link di questo genere:

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.
Esatto ... l'espressione .+ è "possessiva" cioè si "mangia" quanti caratteri il più possibile!!!

Con eregi non credo che si possa fare molto, però puoi usare preg_match. Usa questo:
Codice PHP:
...
if(
preg_match("/<a(.+?)>(.+)<\/a>/"$test$regs)) {
... 
Il ? dopo .+ indica che il match deve essere "ungreedy", cioè non così "ingordo" di caratteri.