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