Sujet : Re: Extraction nombre décimaux.
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.comp.lang.regexpDate : 23. Oct 2022, 11:32:38
Autres entêtes
Organisation : There's no cabale
Message-ID : <tj31nm$1nql$1@cabale.usenet-fr.net>
References : 1
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4
Bonjour,
Le 23/10/2022 10:56, kurtz le pirate a écrit :
Je troune en rond depuis quelques temps sur l'extraction de nombre
décimaux depuis un fichiers. je n'arrive pas à capturer le signe.
Je suggère :
/(?=[-+]?[0-9.])([-+]?)([0-9]*)(?:\.([0-9]+))?(?:e([0-9]+))?/g
L'assertion (?=[-+]?[0-9.]) au début permet de ne considérer que ce qui
ressemble déjà à un nombre (sinon ça matchera aussi la chaîne vide).
@floatnum = $line =~ /[-+]?([0-9]*\.[0-9]+|[0-9]+)/g;
# @floatnum = $line =~ /($RE{num}{real})/g;
# @floatnum = $line =~ /([+-]?\d+(\.\d+)?)/g;
Tu ne peux capturer qu'une seule chose à la fois ???
Exemple :
#declare x = -.168452; #declare y = 0.456; #declare z = -5.4563e6;
Je récupère :
float = .168452
float = 0.456
float = 5.4563
float = 6
Je récupère :
-.168452
"-"
""
"168452"
""
0.456
""
"0"
"456"
""
-5.4563e6
"-"
"5"
"4563"
"6"
-- Olivier Miakinen