Регулярное выражение само по себе описывает только непрерывную последовательность символов.
Если вы хотите оставить только одни цифры, вам нужно будет удалить всё остальное.
Это вы можете сделать заменив регулярное выражение всё кроме цифр на пустое место.
Например, с помощью sed это можно сделать так:
sed 's/[^0-9]//g'
С помощью perl аналогично:
s/[^0-9]+//g
(при этом замена происходит в переменной $_
).
В python это выглядит так (один из вариантов):
re.sub( '[^0-9]+', '', line )
( замена происходит в переменной line
, результат замены возвращается функцией ).
Как можно заметить во всех примерах регулярное выражение выглядит одинаково (или похоже). В действительности диалекты регулярных выражений различаются, но проявляется это только в более сложных случаях.
В данном случае:
/[^0-9]+/
-- что заменить (последовательность символов кроме цифр);
//
— на что заменить (на пустое место);
g
— модификатор, указывающий, что нужно выполнять глобальную замену, то есть заменять все вхождения регулярного выражения в строке, сколько раз бы они ни встречались.