On Thursday 19 June 2003 01:45, Laurent Martelli wrote:
> >>>>> "Frederic" == Frederic Laurent <[EMAIL PROTECTED]> writes:
>
> [...]
>
>   >>>> str.replaceAll("[|]([\\w|_]*?)", "($1)")
>
>   Frederic> 'a()b()c()d'
>
>   Frederic> pourquoi la ) est avant mon $1 ?
>
> Le * peut matcher z�ro fois le pattern. Si l'expression n'est pas
> "gourmande" et matche le minimum, c'est ce qui se passe je pense.

et bien c'est presque �a... 
j'avais mis *? pour que ce soit du greedy et donc qu'il
ne soit pas trop gourmand, cependant * permet de matcher une
chaine nulle, et effectivement cela pose un probleme, donc

>>> str.replaceAll("[|](\\w+?)", "($1)")
'a(b)(c)(d)'

fonctionne, 
de plus \w|_ ne sert � rien vu que le '_' fait deja partie
du \w.

En tout cas merci pour la piste, c'est ok maintenant...

-- 
Fr�d�ric Laurent
http://www.opikanoba.org

Répondre à