Уведомления

Группа в Telegram: @pythonsu

#1 Март 10, 2010 23:40:48

pina
От:
Зарегистрирован: 2010-03-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема RegExp и threading

Здравствуйте!

В общем есть довольно примитивный класс основанный на threading. В процессе работы в классе проверяется некое условие. Данное условие это количество результатов len(re.findall())
При чем, я решил “облегчить” питону жизнь и сделал до объявления класса regexp = re.compile() в надежде на то, что однажды скомпилированная регулярка будет работать быстрее, нежели компилирование каждый раз. В итоге получилось regexp.findall(content).

По идее пока все правильно. НО! В процессе работы столкнулся с такой проблемой что результат не правильный. Он включает в себя какие то “дополнительные результаты”. Т.е. например в реальности число вхождений должно быть 10, а он выдает 245 (цифры с потолка, но так на самом деле). На сколько я понял, “дополнительные результаты” - это остатки от прошлых действий регулярки, или тех которые в данный момен обрабатываются.

Все эти же действия( regexp.findall(content) ) в один поток(без threading) дают правильный результат.

Как заствить работать данный кусок кода так, как мне надо?



Офлайн

#2 Март 10, 2010 23:54:22

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

Проблема RegExp и threading

pina
Как заствить работать данный кусок кода так, как мне надо?
обойтись без regexp = re.compile() ?



Офлайн

#3 Март 11, 2010 00:54:04

pina
От:
Зарегистрирован: 2010-03-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема RegExp и threading

мой косяк, все правильно)
в один поток тестил на домашнем компе, а на сервере регулярка из других слов складывается)) вот и получалось такое разногласие



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version