If you want to allow 1
and 1.2
:
(?<=^| )d+(.d+)?(?=$| )
If you want to allow 1
, 1.2
and .1
:
(?<=^| )d+(.d+)?(?=$| )|(?<=^| ).d+(?=$| )
If you want to only allow 1.2
(only floats):
(?<=^| )d+.d+(?=$| )
d
allows digits (while D
allows anything but digits).
(?<=^| )
checks that the number is preceded by either a space or the beginning of the string. (?=$| )
makes sure the string is followed by a space or the end of the string. This makes sure the number isn't part of another number or in the middle of words or anything.
Edit: added more options, improved the regexes by adding lookahead- and behinds for making sure the numbers are standalone (i.e. aren't in the middle of words or other numbers.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…