#include <iostream>
#include <regex>
using namespace std;
int main() {
std::string buffer = " li 12.12 si 43,23 45 31 uf 889 uf31 3.12345";
std::regex rx("(?:\\s|^)((?:\\+|-)?\\d+(?:\\.\\d+)?)(?:\\s|$)");
std::smatch m;
std::string str = buffer;
while (regex_search(str, m, rx)) {
std::cout << "Number found: " << m[1] << std::endl;
str = m.suffix().str();
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmVnZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXN0ZDo6c3RyaW5nIGJ1ZmZlciA9ICIgbGkgMTIuMTIgc2kgNDMsMjMgNDUgMzEgdWYgODg5IHVmMzEgMy4xMjM0NSI7CglzdGQ6OnJlZ2V4IHJ4KCIoPzpcXHN8XikoKD86XFwrfC0pP1xcZCsoPzpcXC5cXGQrKT8pKD86XFxzfCQpIik7CglzdGQ6OnNtYXRjaCBtOwoJc3RkOjpzdHJpbmcgc3RyID0gYnVmZmVyOwogICAgd2hpbGUgKHJlZ2V4X3NlYXJjaChzdHIsIG0sIHJ4KSkgewoJCXN0ZDo6Y291dCA8PCAiTnVtYmVyIGZvdW5kOiAiIDw8IG1bMV0gPDwgc3RkOjplbmRsOwoJCXN0ciA9IG0uc3VmZml4KCkuc3RyKCk7Cgl9CgkKCXJldHVybiAwOwp9