Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 27, 2015 01:37:04

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста с регуляркой

В коде есть:

('название_скрипта.cgi?param=рандомное_значение')
Нужно вытаскивать
название_скрипта.cgi?param=рандомное_значение

Офлайн

#2 Дек. 27, 2015 02:19:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

помогите пожалуйста с регуляркой

>>> import re
>>> 
>>> s = "('название_скрипта.cgi?param=рандомное_значение')"
>>> re.search(r"\('([^']*)'\)", s).group(1)
'название_скрипта.cgi?param=рандомное_значение'
>>>



Отредактировано py.user.next (Дек. 27, 2015 02:19:56)

Офлайн

#3 Дек. 27, 2015 02:30:09

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста с регуляркой

Спасибо, но нужно именно

название_скрипта.cgi?param=рандомное_значение
Если в строке отсутствует ‘название_скрипта.cgi?param=’ забирать ее не нужно.
Скорее даже так:
('рандомное_значение/название_скрипта.cgi?param=рандомное_значение')

Офлайн

#4 Дек. 27, 2015 03:45:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

помогите пожалуйста с регуляркой

gelius
Спасибо, но нужно именно
Именно это оно и достаёт, кавычки пишет repr().



Отредактировано py.user.next (Дек. 27, 2015 03:45:52)

Офлайн

#5 Дек. 27, 2015 13:07:22

A.N.Onim
Зарегистрирован: 2015-11-08
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста с регуляркой

gelius
Спасибо, но нужно именно

Офлайн

#6 Дек. 27, 2015 14:42:55

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста с регуляркой

py.user.next
Именно это оно и достаёт, кавычки пишет repr().
Оно достает любую строку, заключенную в ковычки.
Нужно только строки содержащие
название_скрипта.cgi
Кстати не работает.
AttributeError: 'NoneType' object has no attribute 'group'
python 2.7
Вроде должно вытаскивать:
	rex = re.compile(r'([\w](\')?)(.*?)название_скрипта.cgi(.*?)(\')')
	sc = [d[2] for d in rex.findall(s)]
Но пусто.

Отредактировано gelius (Дек. 27, 2015 15:16:52)

Офлайн

#7 Дек. 27, 2015 15:32:22

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

помогите пожалуйста с регуляркой

>>> import re
>>> 
>>> text = u"""
... ('название_скрипта.cgi?param=рандомное_значение1')
... ('x')
... ('название_скрипта.cgi?param=')
... ('название_скрипта.cgi?param=рандомное_значение2')
... ('рандомное_значение/название_скрипта.cgi?param=рандомное_значение')
... """
>>> 
>>> pat = ur"\('([^']*название_скрипта\.cgi\?param=[^']*)'\)"
>>> 
>>> lst = re.findall(pat, text)
>>> for i in lst:
...     print i
... 
название_скрипта.cgi?param=рандомное_значение1
название_скрипта.cgi?param=
название_скрипта.cgi?param=рандомное_значение2
рандомное_значение/название_скрипта.cgi?param=рандомное_значение
>>>



Отредактировано py.user.next (Дек. 27, 2015 15:34:16)

Офлайн

#8 Дек. 27, 2015 16:32:40

gelius
Зарегистрирован: 2013-03-18
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите пожалуйста с регуляркой

Хм. Не могу понять, почему отказывается забирать искомую строку из html кода.

Отредактировано gelius (Дек. 27, 2015 16:37:50)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version