LINUX.ORG.RU

[python][regexp'ы]Можно ли так?

 


0

0

Есть строки вида: 'число,<ноль или несколько пробелов>,...', типа:

'34,54,   43, 4'
'1,2,4, 5'

Можно ли используя модуль re вытащить все числа в виде кортежа?

Типа num = pattern.match ('34,54, 43, 4').groups()

Получим num == (34, 54, 43, 4)

Пробовал

r'(?:([0-9]+)[, ]*)+'
но создается только одна группа, в которой последнее число.

Конечно, можно реализовать и без регекспов, но я хочу с ними.

> Получим num == ('34', '54', '43', '4')

fixed

dragonfly
() автор топика
Ответ на: комментарий от dragonfly

Да не юзай dir для обучения. Юзай референсы. Я первые недели 2 пользования пайтоном к ним часто обращался. Не только по регэкспам. Много чего интересного можно там найти.
Достаточно в гугле вбить название модуля после слова «python» и ты получишь ссылку на официальный референс в 1-4ом результате.

tia
()
Ответ на: комментарий от dragonfly

Кстати, для вообще таких случаем можно вообще сделать:
re.findall('([0-9]+)', a)

tia
()

> r'(?:([0-9]+)[, ]*)+'

там не все так просто. Такой паттерн не сработает, если нужно будет обработать "-1 3.0 9 46"

anonymous
()
Ответ на: комментарий от anonymous

Конечно. А я разве спорю? )
Человеку нужно было для конкретного примера.
А вообще, дорогой анонимус, это не красиво. В таких случаях нужно давать свой, рабочий вариант. Ну это что-бы не быть слишком голословным. Ты же понимаешь какая репутация у анонимуса?

tia
()
Ответ на: комментарий от tia

> А вообще, дорогой анонимус, это не красиво. В таких случаях нужно давать свой, рабочий вариант. Ну это что-бы не быть слишком голословным. Ты же понимаешь какая репутация у анонимуса?

Какая я бы ни была репутация у анонимуса, у тебя она явно хуже. Нужно было не писать ответ, а сказать автору, что он дурак и отправить читать фридла.

А просто вещественные числа можно распознавать вот таким regexом ([+-]?[0-9]+(\.[0-9]*)?), который тоже не без греха.

anonymous
()
map(int,a.split(","))

и никаких регекспов

SV0L0CH
()
Ответ на: комментарий от anonymous

>у тебя она явно хуже
О! Знакомый ответ от знакомого анонимуса. У тебя то не то чтобы плохая репутация, у тебя её нет и вовсе. А тот факт что ты боишься зарегистрироваться, указывает что ты низшее создание, грязь. Смирись, малыш :)

Нужно было не писать ответ, а сказать автору, что он дурак и отправить читать фридла.

Вот будешь ты задавать вопросы, мы тоже будем отсылать тебя в референсы и man'ы без конкретики.

который тоже не без греха

Ну раз без греха не можешь писать - спрячь своё ЧСВ.

tia
()
Ответ на: комментарий от tia

> О! Знакомый ответ от знакомого анонимуса. У тебя то не то чтобы плохая репутация, у тебя её нет и вовсе. А тот факт что ты боишься зарегистрироваться, указывает что ты низшее создание, грязь. Смирись, малыш :)

Я не боюсь - я много раз это уже делал.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.