питон

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 06:13 pm (UTC)
From: [identity profile] ezdakimak.livejournal.com
Не проще вырезать числа, а потом склеить? Не знаю синтаксиса питона, но в яваскрипте вот такое проканает
var str="пыщпыщпыщ: 111.11\
олололоо: 222.22\
ыыыыыыы: 333.33";

str.match(/(\d{3}\.\d{2})/gi);

Date: 2016-12-07 06:16 pm (UTC)
From: [identity profile] ezdakimak.livejournal.com
А, пропустил, если вам надо последнее только число, то надо ещё символ поиска у конца добавить - $
str.match(/(\d{3}\.\d{2})$/gi);

Date: 2016-12-07 06:32 pm (UTC)
From: [identity profile] ezdakimak.livejournal.com
Заменить все что не цифры в яваскрипте опять же.

str.replace(/[^\d\.\s]/gi,''); // " 111.11 222.22 333.33"

Может у вас проблема в том что флаг глобального поиска не стоит? Регулярное выражение перестает работать в конце строки, вот это gi - это глобальный регистронезависимый поиск. В питоне может быть другой символ флага глобального поиска или даже отдельная функция которая игнорирует переносы строк.