питон

Dec. 7th, 2016 07:00 pm
[identity profile] shaihkritzer.livejournal.com posting in [community profile] useful_faq
кто разбирается в регулярных выражениях питон - помогайте.

есть текст формата:

"пыщпыщпыщ: 111.11
олололоо: 222.22
ыыыыыыы: 333.33"

нужно обрезать всё кроме "333.33".

регулярное выражение типа .+?([\d.\d.]+) через echo "%1" выдаёт 111.11, но "нарастить" его по принципу .+?([\d.\d.]+)([\d.\d.]+)([\d.\d.]+) echo %3 не выдаёт 333.33. я получаю либо часть первого числа, либо точку, либо пустоту, либо ошибку. гугление мануалов особо не помогло, да и я не программист.

какое будет корректное выражение для того, чтобы убрать весь текст кроме "333.33"? или хотя бы убрать всё, кроме чисел?

Date: 2016-12-07 08:38 pm (UTC)
From: [identity profile] karpion.livejournal.com
Я бы тогда сделал "заменить все не_цифры и не_точку на пустую строку. Глобально.
Это если построчно. Но я думаю, дальше Вы сами допилите.

Date: 2016-12-08 07:09 pm (UTC)
From: [identity profile] karpion.livejournal.com
Как Вам вариант: "удалить всё, кроме цифр, точек и пробелов"? Удалять Вы умеете?

Просто я в основном работаю с регексами через grep и sed, а там это немного отличается. Для sed это примерно так:
sed 's/[^0-9. ]//g' ...
(троеточие - это имя файла или перенаправление ввода; а ещё можно брать данные через "|" - но он будет слева от команды). Попробуйте натравить этот вариант на Ваши данные. Правда, он оставит переводы строки - sed работает построчно.