Path: ...!news.mixmin.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!.POSTED!not-for-mail From: Olivier Miakinen Newsgroups: fr.comp.lang.regexp Subject: =?UTF-8?Q?Re:_Extraction_nombre_d=c3=a9cimaux.?= Date: Sun, 23 Oct 2022 11:32:38 +0200 Organization: There's no cabale Lines: 51 Message-ID: References: <635501d4$0$22259$426a74cc@news.free.fr> NNTP-Posting-Host: 220.12.205.77.rev.sfr.net Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit X-Trace: cabale.usenet-fr.net 1666517558 57173 77.205.12.220 (23 Oct 2022 09:32:38 GMT) X-Complaints-To: abuse@usenet-fr.net NNTP-Posting-Date: Sun, 23 Oct 2022 09:32:38 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4 In-Reply-To: <635501d4$0$22259$426a74cc@news.free.fr> Bytes: 1921 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