Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 13, 2008 12:17:38

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

re.findall

юзаю ф-цию re.findall(r'^http://(*)', value)
а мне все возвращается в формате



Отредактировано (Июнь 13, 2008 12:21:16)

Офлайн

#2 Июнь 13, 2008 12:49:53

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

re.findall

Ты используешь findall т.е. найти все. Соотвественно тебе возвращается список найденного.
В твоем варианте вернулся список из одного элемента - строки в формате uncode.



Офлайн

#3 Июнь 13, 2008 13:44:10

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

re.findall

я понимаю что он мне находит, но как убрать юникод [u' поскольку на сайте это выглядть вот так

Mobil: +41 *****
Email: info@sayt.ch
Web:



Офлайн

#4 Июнь 13, 2008 13:45:30

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

re.findall

re.findall(r'^http://([^/]*)', value)[0]



Офлайн

#5 Июнь 13, 2008 13:48:54

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

re.findall

Daevaorn
Exception Type: IndexError
Exception Value: list index out of range



Офлайн

#6 Июнь 13, 2008 13:56:54

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

re.findall

Выводи на сайт прям юникодную строку.

Exception Type: IndexError
Exception Value: list index out of range
Означает, что ничего не было найдено.

matchs = re.findall(r'^http://([^/]*)', value)
if matchs: #если что-то нашли регуляркой
rezult = matchs[0] #берем перое что нашли
else:
rezult = '' #иначе возвращаем пустую строку



Отредактировано (Июнь 13, 2008 13:57:28)

Офлайн

#7 Июнь 13, 2008 14:00:29

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

re.findall

значит ф-ция изменил на

def hgurl(value):	
matchs = re.findall(r'^http://([^/]*)', value)
if matchs:
rezult = matchs[0]
else:
rezult = ''
return rezult
выдает вот это

Traceback (most recent call last):

File “C:\Python25\lib\site-packages\django\core\servers\basehttp.py”, line 277, in run
except:

File “C:\Python25\lib\site-packages\django\core\servers\basehttp.py”, line 631, in __call__
status = ‘200 OK’

File “C:\Python25\lib\site-packages\django\core\handlers\wsgi.py”, line 205, in __call__
response_headers.append(('Set-Cookie', c.output(header='')))

File “C:\Python25\lib\site-packages\django\core\handlers\base.py”, line 120, in get_response
except:

File “C:\Python25\lib\site-packages\django\views\debug.py”, line 74, in technical_500_response
template_does_not_exist = True

File “C:\Python25\lib\site-packages\django\views\debug.py”, line 119, in get_traceback_html
c = Context({

File “C:\Python25\lib\site-packages\django\views\debug.py”, line 238, in _get_lines_from_file
function getElementsByClassName(oElm, strTagName, strClassName){

IndexError: list index out of range



Офлайн

#8 Июнь 13, 2008 14:23:42

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

re.findall

получилось вот так

def hgurl(value):	
matchs = re.findall(r'^http://([^/]*)', value)
if matchs:
return matchs[0]
else:
return ''



Офлайн

#9 Июнь 13, 2008 14:23:43

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

re.findall

Это у тебя еще где-то ошибка.
Чтоб проверить, что не здесь, попробуй так:

def hgurl(value):
return 'mail.ru'



Офлайн

#10 Июнь 13, 2008 14:30:31

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

re.findall

shiza
'mail.ru'
мда подсветка кода супер



Отредактировано (Июнь 13, 2008 14:31:01)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version