22
22
use function in_array ;
23
23
use function mb_strlen ;
24
24
use function ord ;
25
+ use function sprintf ;
25
26
use const INF ;
26
27
27
28
/**
@@ -38,31 +39,31 @@ final class Real extends Element implements Stringable
38
39
* @var string
39
40
*/
40
41
final public const NR1_REGEX = '/^\s* ' .
41
- '(?<s>[+\-])? ' . // sign
42
- '(?<i>\d+) ' . // integer
43
- '$/ ' ;
42
+ '(?<s>[+\-])? ' . // sign
43
+ '(?<i>\d+) ' . // integer
44
+ '$/ ' ;
44
45
45
46
/**
46
47
* Regex pattern to parse NR2 form number.
47
48
*
48
49
* @var string
49
50
*/
50
51
final public const NR2_REGEX = '/^\s* ' .
51
- '(?<s>[+\-])? ' . // sign
52
- '(?<d>(?:\d+[\.,]\d*)|(?:\d*[\.,]\d+)) ' . // decimal number
53
- '$/ ' ;
52
+ '(?<s>[+\-])? ' . // sign
53
+ '(?<d>(?:\d+[\.,]\d*)|(?:\d*[\.,]\d+)) ' . // decimal number
54
+ '$/ ' ;
54
55
55
56
/**
56
57
* Regex pattern to parse NR3 form number.
57
58
*
58
59
* @var string
59
60
*/
60
61
final public const NR3_REGEX = '/^\s* ' .
61
- '(?<ms>[+\-])? ' . // mantissa sign
62
- '(?<m>(?:\d+[\.,]\d*)|(?:\d*[\.,]\d+)) ' . // mantissa
63
- '[Ee](?<es>[+\-])? ' . // exponent sign
64
- '(?<e>\d+) ' . // exponent
65
- '$/ ' ;
62
+ '(?<ms>[+\-])? ' . // mantissa sign
63
+ '(?<m>(?:\d+[\.,]\d*)|(?:\d*[\.,]\d+)) ' . // mantissa
64
+ '[Ee](?<es>[+\-])? ' . // exponent sign
65
+ '(?<e>\d+) ' . // exponent
66
+ '$/ ' ;
66
67
67
68
/**
68
69
* Regex pattern to parse PHP exponent number format.
@@ -72,14 +73,14 @@ final class Real extends Element implements Stringable
72
73
* @var string
73
74
*/
74
75
final public const PHP_EXPONENT_DNUM = '/^ ' .
75
- '(?<ms>[+\-])? ' . // sign
76
- '(?<m> ' .
77
- '\d+ ' . // LNUM
78
- '| ' .
79
- '(?:\d*\.\d+|\d+\.\d*) ' . // DNUM
80
- ')[eE] ' .
81
- '(?<es>[+\-])?(?<e>\d+) ' . // exponent
82
- '$/ ' ;
76
+ '(?<ms>[+\-])? ' . // sign
77
+ '(?<m> ' .
78
+ '\d+ ' . // LNUM
79
+ '| ' .
80
+ '(?:\d*\.\d+|\d+\.\d*) ' . // DNUM
81
+ ')[eE] ' .
82
+ '(?<es>[+\-])?(?<e>\d+) ' . // exponent
83
+ '$/ ' ;
83
84
84
85
/**
85
86
* Exponent when value is positive or negative infinite.
0 commit comments