Я пытаюсь найти лучшее регулярное выражение для извлечения номера версии из строки. Например:
echo "Version 1.2.4.1 (release mode)" | sed -ne 's/.*\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/p'
Проблема здесь в том, что он работает только в том случае, если номер версии имеет формат «abcd». Если кто-то решит добавить или удалить цифру («abcde», «abc»), он сломается. Поэтому я хотел бы проанализировать регулярное выражение и сказать sed, что я хочу:
(1 или более чисел, за которыми следует точка) x 1 или более раз, за которыми следует число.
Я не могу найти, как "сгруппировать" «1 или более чисел, за которыми следует точка», поэтому я могу сказать, что хочу этот шаблон хотя бы один раз. Я пробовал это, но это не работает:
\([0-9]\+\.\)\+
Есть идеи ?