Вы можете превратить позитивный взгляд в не захватывающую группу (?:^| )
, сохраняя чередование.
Затем запишите свое значение в группу захвата (\d+(?:\.\d+)?)
и превратите необязательную десятичную часть также в группу без захвата.Позитивный прогноз поддерживается, поэтому вы можете оставить все как есть.
(?:^| )(\d+(?:\.\d+)?)(?=$| )
Regex demo
let strings = [
"1",
"1.2 ",
"0",
"0.122",
" 1",
" 1.2",
" 0",
" 0.122",
];
let pattern = /(?:^| )(\d+(?:\.\d+)?)(?=$| )/;
strings.forEach(s => {
console.log(s.match(pattern)[1])
});