Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 5, 2010 13:49:45

AKAdem1c
От:
Зарегистрирован: 2010-12-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Regexp несколько токенов

Помогите примером - как можно вытащить из строки несколько токенов? к примеру из строки ‘,“мама”,fwfwfwfwfwfwfwfw,1,“рама”,’
нужно получить мама и рама



Офлайн

#2 Дек. 5, 2010 18:20:03

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Regexp несколько токенов

>>> import re
>>> s = u',"мама",fwfwfwfwfwfwfwfw,1,"рама",'
>>> print u','.join( re.findall(r'(".+?")',s) )
"мама","рама"

Офлайн

#3 Дек. 5, 2010 18:24:47

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Regexp несколько токенов

>>> print u','.join( re.findall(r'"(.+?)"',s) )
мама,рама
>>> print ', '.join( re.match(r',"(.+?)",.+?,"(.+?)".+$', s).groups() )
мама, рама

Офлайн

#4 Дек. 5, 2010 19:42:08

AKAdem1c
От:
Зарегистрирован: 2010-12-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Regexp несколько токенов

o7412369815963
спасибо! как раз начал рыть в сторону groups только пока не могу понять как сделать так чтобы в 1 группе было “мама” а в другой “рама”



Офлайн

#5 Дек. 5, 2010 21:16:55

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Regexp несколько токенов

AKAdem1c
не могу понять как сделать так чтобы в 1 группе было “мама” а в другой “рама”
Так может?
re.match(r',"(?P<mama>.+?)",.+?,"(?P<rama>.+?)".+$', s).groupdict()



Офлайн

#6 Дек. 5, 2010 22:34:46

AKAdem1c
От:
Зарегистрирован: 2010-12-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Regexp несколько токенов

Ed
работает только если 1 совпадение “мама” или “рама” а если их 100 как сделать для каждой группы список?



Офлайн

#7 Дек. 6, 2010 00:54:58

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Regexp несколько токенов

Не совсем понятно. Можно пример строки и чего хочется получить?



Офлайн

#8 Дек. 6, 2010 03:37:28

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Regexp несколько токенов

А не проще так:

>>>print( s.split('"')[1::2] )
['мама', 'рама']



Отредактировано (Дек. 6, 2010 03:42:44)

Офлайн

#9 Дек. 6, 2010 13:31:55

AKAdem1c
От:
Зарегистрирован: 2010-12-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Regexp несколько токенов

Задача получить данные с ВКонтакте, а именно инфу по друзьям получаю строку такого вида
{'id':xxxxxxxx,'mid':xxxxxxxx,'hash':'xxxxxxxxxx_xxxxxxxxxxxaxxxxxx','summary':“У Вас XX друга”,'friends':[,,
ГДЕ:
У Вас XX друга (XX) кол-во друзей в строке 1 раз встречается
“Василий Пупкин” - Имя встречается много раз нужно получить список
“vasya” - домен встречается много раз, может не быть, тогда просто “”
“Василий” - это не нужно
и так требуется получить 3 группы результатов - 1 число и списки имен и доменов

В 3 выражения понятное дело нет проблем, но очень хочу понять как сделать это в одно ибо это офигенно



Офлайн

#10 Дек. 6, 2010 18:01:44

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

Regexp несколько токенов

C этого и надо было начинать топик.

import json

data = json.loads(string_from_vkontakte)



Отредактировано (Дек. 6, 2010 18:02:39)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version