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