aboutsummaryrefslogtreecommitdiffstats
path: root/lib/scanf.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/scanf.rb')
-rw-r--r--lib/scanf.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/scanf.rb b/lib/scanf.rb
index ed39a48292..ffc0d90f49 100644
--- a/lib/scanf.rb
+++ b/lib/scanf.rb
@@ -410,11 +410,12 @@ module Scanf
# %f
when /%\*?[efgEFG]/
- [ '([-+]?((\d+(?>(?=[^\d.]|$)))|(\d*(\.(\d*([eE][-+]?\d+)?)))))', :extract_float ]
+ [ '([-+]?(?:\d+(?![\d.])|\d*\.\d*(?:[eE][-+]?\d+)?))', :extract_float ]
# %5f
when /%\*?(\d+)[efgEFG]/
- [ "(\\S{1,#{$1}})", :extract_float ]
+ [ '(?=[-+]?(?:\d+(?![\d.])|\d*\.\d*(?:[eE][-+]?\d+)?))' +
+ "(\\S{1,#{$1}})", :extract_float ]
# %5s
when /%\*?(\d+)s/