I have this pattern:
[0-9]*\.?[0-9]
It matches numbers but it also matches 3.5.4 as:
How to fix that(this input shouldn't be matched)?
UPDATE:
this also should work on input:
1 3.5.4 10
1.2. is not allowed
.3 is allowed
any char that is not poart of numer is not allowed, like: a1 2.4f 3. 45, 67!
To match a json number:
^[-]?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?$
Use this regex to match .123
:
^[-]?((0|[1-9][0-9]*)(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?$
Updated answer after comment from poster:
Use lookahead / lookbehind to make sure that the characters before and after are spaces:
Here's a version that closely matches yours, but that won't make partial matches:
(?:^|(?<=\s))[0-9]*\.?[0-9](?=\s|$)
For both these examples, when run on the string 1 2.3.4 5.6
it matches only 1
and 5.6
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With