I'm trying to find the best regular expression to extract a version number from a string. For example:
echo "Version 18.104.22.168 (release mode)" | sed -ne 's/.*\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/p'
The problem here is that it works only if the version number is in the format "a.b.c.d". If someone decides to add or remove a digit ("a.b.c.d.e", "a.b.c"), it will break. So I'd like to factorize the regex and tell sed that I want:
(1 or more numbers followed by a dot) x 1 or more times, followed by a number.
I can't find how to "group" the "1 or more numbers followed by a dot" so I can tell I want that pattern at least once. I've tried this but it doesn't work:
Any ideas ?