Re,

Le 05/02/07, christianwtd <[EMAIL PROTECTED]> a écrit :

yves dutrieux a écrit :
> Bonsoir à vous deux,
>
> Le 05/02/07, christianwtd <[EMAIL PROTECTED]> a écrit :
>>
>> Xavier COUDIN a écrit :
>>
>> > P.S.
>> > Christian pourrait-il (si il veut bien me rendre ce petit service...)
>> > fournir des commentaires sur la bonne compréhension de la séquence
>> > ".*$.*" . Faut-il le décomposer comme une expression régulière ?
>>
>> Comme je ne connaissais pas le position du $ dans une chaîne de
>> caractères, je me suis servi de la recherche ".*", mais que j'ai eu
tort
>> de placer avant et après, puisque seul ".*$" suffit.
>> Sinon, pour les recherches dans les formules l'astérisque ne suffit
pas,
>> il faut le faire précéder d'un point.
>
>
> Christian, dans ton exemple, ne serait-ce pas plutôt  :
> ".*\$"
> parce que sinon tu recherches zéros ou plusieurs caractères (.*) AVANT
la
> fin de la ligne ($) non  ? ;o)
> en mettant le "\" on précise que c'est le caractères Dollar et pas la
> fin de
> ligne.
>
> Yves.

Bonsoir Yves,

C'est vrai qu'on s'y perd facilement avec les caractères génériques.
Mais je maintiens.
Quelque part en A1:B10 tu fais des tests avec par exemple :
$abc
abc$
a$bc
$
etc...
en colonne B des fonctions:
=LIGNE() pour avoir une valeur de retour. Et enfin :
=RECHERCHEV(".*$"; A1:B10; 2; 0)
Si tu fais :
=RECHERCHEV(".*\$"; A1:B10; 2; 0)
a$bc se traduit par un #NA, pas dans le premier cas.


Normal, la recherche voit qu'il y a des caractères derrières donc si on veut
que ça fonctionne il faut (comme tu l'as remarqué)  .*\$.* pour avoir tous
les cas.
Si j'ai bon souvenir, (en perl), l'évaluation d'une expression régulière
commence par la fin.
Dans notre cas, comme il y a des caractères derrière,on est obligé de mettre
.* à la suite de la chaine de recherche.

Mais !  Ce n'est pas tout. Si on continue les tests, mais avec la lettre
a minuscule par exemple :
=RECHERCHEV(".*a"; A1:B10; 2; 0) ou
=RECHERCHEV(".*\a"; A1:B10; 2; 0)
fonctionne parfaitement avec une lettre a seule dans une cellule.
Si en revanche on a un texte
abc, c'est #NA dans les 2 cas.
En inversant le texte :
cba, les 2 formules fonctionnent !


Idem que ci-dessus (obligation de mettre .* derrière.)

Tu suis toujours ? Donc, j'en reviens à la formule que j'avais proposé
initialement à Xavier :
=RECHERCHEV(".*a.*"; A1:B10; 2; 0)
avec les ".*" avant et après, parce que ça marche à tous les coups.

Ne me demande pas le pourquoi du comment, c'est simplement une réalité.
Faudrait demander à Tony ce qu'il en pense...
Tony, si tu nous lis ;-)


Tony, peux-tu confirmer/infirmer ? De mon côté, je cherche encore une
confirmation de ce que j'avance.


Bon surf,


Il le sera ;-)
Yves

Christian

--
Visitez http://christianwtd.free.fr/ pour débuter avec Calc, d'
OpenOffice.org

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
web site : http://www.molenbaix.com

Répondre à