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