Le 03/03/2023 à 22:18, M.V. a écrit :
>
>> Eh bien par exemple la regexp "[a-z] [0-9]" permet de détecter une
>> chaîne contenant une lettre minuscule sans accent, n'importe laquelle,
>> suivie d'une espace, suivie d'un chiffre, n'importe lequel.
>>
>> Ainsi cela répondra oui à "toto 55" parce qu'il y a "o 5" dedans,
>> mais non à "55 toto".
>
> OK, je vois.
Oui, mais c'était un exemple tout simple.
> C'est un tout petit moins simple en AppleScript mais ça se fait quand
> même très bien : prendre le 1er caractère de l'expression à tester,
> regarder s'il est dans [a-z], si oui regarder s'il est suivi d'une
> espace et si oui encore regarder si celle-ci est suivie par un chiffre
> entre 0 et 9.
> Si la réponse est NON à un des 3 critères alors passer au 2ème caractère
> de l'expression à tester, regarder s'il est dans [a-z], si oui regarder
> etc.
>
> Ça semble long quand on l'explicite mais un script fait ça en quelques
> millièmes de seconde pour une expression moins longue qu'un roman avec
> la chaine valide à la page 859 !
Alors prenons un autre exemple.
Comment écrirais-tu un programme capable de détecter si une chaîne de
caractères est un nombre en virgule flottante ?
Voici quelques exemples de nombres valides :
"0"
"+1.5"
"1e+99"
"-19E-7"
"1.7e003"
".3"
Et voici quelques exemples non valides :
""
"1.2.3"
"1E3.4"
"--1"
"e+99"
"."
"+1e"
Avec les regexp, le programme est par exemple :
/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/
--
Olivier Miakinen