[Php-it] EREG fermarsi alla prima occorrenza

Emiliano Gabrielli (aka AlberT) AlberT at superalbert.it
Wed Jul 12 11:21:46 CEST 2006


On Wednesday 12 July 2006 11:08, Domenico Lorusso wrote:

pereg_match_all('#\{[^}]+\}#', $a, $matches);

o qualcosa di simile .. scusa ma non ho tempo di testarla

> Ciao a tutti,
>     ho un problema con le espressioni regolari, da un testo (html) che
> contiene delle parole delimitate da {} vorrei ottenere un elenco di
> queste parole, sono arrivato a fare:
>
> $a='<html {}{fasdf }<body>ciao {che bello} boh {che sbello} mioa';
> $a=ereg_replace('^.*<body','',$a);
> echo "<p>1- $a</p>";
> $a=ereg_replace('^.*{','{',$a);
> echo "<p>2- $a</p>";
> $a=ereg_replace('{(.+)}','\\1,',$a);
> echo "<p>3- $a</p>";
> $a=ereg_replace(',.*$','',$a);
> echo "<p>4- $a</p>";
> il cui output è
>
> 1- >ciao {che bello} boh {che sbello} mioa
>
> 2- {che sbello} mioa
>
> 3- che sbello, mioa
>
> 4- che sbello
>
> Insomma, il problema è che il match non si ferma alla prima occorrenza
> ma all'ultima della parentesi graffa nel passaggio 2
> invece di considerare: ">ciao {" considera ">ciao {che bello} boh {" che
> è troppo, come si fa a dirgli di considerare fermarsi alla prima
> occorrenza?
>
> grazie

-- 
<?php echo '     Emiliano Gabrielli (aka AlberT)     ',"\n",
'  socio fondatore e membro del direttivo del GrUSP  ',"\n",
' AlberT_at_SuperAlberT_it   -   www.SuperAlberT.it  ',"\n",
'  IRC:    #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>


More information about the Php-it mailing list