Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 30, 2014 09:43:49

alexiy
Зарегистрирован: 2013-10-16
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

RegExp operator AND

py.user.next
нужен пример текста и слов, которые в нём надо найти

Сейчас это так выглядит:
r'(?=.*(?<![a-z0-9\/\.])[a-f0-9]{32}(?![a-z0-9\/\.]))(?=.*(md5|hash)(?![a-z0-9]))(?i)'
Как понимаю нагрузка из-за .* перед каждой половиной. Текст можно взять любой большего размера и почти сплошной (с минимумом пробелов)

Отредактировано alexiy (Янв. 30, 2014 09:46:13)

Офлайн

#2 Янв. 30, 2014 12:33:21

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

RegExp operator AND

мне не нравится что у тебя ассершены вложены и квантификаторы жадные
может так?

r"(?<=\b(md5|hash)\b.*?)\b[a-f0-9]{32}\b(?=.*?\b(md5|hash)\b)"

Офлайн

#3 Янв. 30, 2014 15:12:45

alexiy
Зарегистрирован: 2013-10-16
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

RegExp operator AND

bismigalis
мне не нравится что у тебя ассершены вложены и квантификаторы жадные
может так?

r"(?<=\b(md5|hash)\b.*?)\b{32}\b(?=.*?\b(md5|hash)\b)"

sre_constants.error: look-behind requires fixed-width pattern

Офлайн

#4 Янв. 30, 2014 18:52:06

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

RegExp operator AND

alexiy
Сейчас это так выглядит:
это не пример текста

alexiy
Текст можно взять любой большего размера и почти сплошной (с минимумом пробелов)
и что в нём искать ?

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



Офлайн

#5 Янв. 30, 2014 21:23:19

alexiy
Зарегистрирован: 2013-10-16
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

RegExp operator AND

py.user.next
exiy
Сейчас это так выглядит:

это не пример текста

alexiy
Текст можно взять любой большего размера и почти сплошной (с минимумом пробелов)

и что в нём искать ?

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

Ребята.. чуть выше конкретный RegExp Конкретней уж некуда. Берём большой текст (любой) и ищем в нём хеш И слова md5|hash - именно какбы с оператором И. Конкретно ЭТОТ RegExp Очень медленно работает. Приблизительно в 50 раз медленней чем если искать каждое слово по отдельности поочереди.

Отредактировано alexiy (Янв. 30, 2014 21:23:43)

Офлайн

#6 Янв. 30, 2014 22:27:47

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

RegExp operator AND

r"(?:md5|hash)(?:.+?)([a-f0-9]{32})|([a-f0-9]{32})(?:.+?)(?:md5|hash)"

Офлайн

#7 Янв. 31, 2014 10:06:02

alexiy
Зарегистрирован: 2013-10-16
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

RegExp operator AND

bismigalis
r"(?:md5|hash)(?:.+?)({32})|({32})(?:.+?)(?:md5|hash)"

Хорошо.. этот вариант принимается для двух слов, первой половины вопроса. А если позже надо будет 3-4 слова одновременно искать в любой комбинации? Все 20 вариантов комбинаций прописывать неочень как-то

Офлайн

#8 Янв. 31, 2014 10:31:02

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

RegExp operator AND

alexiy
Все 20 вариантов комбинаций прописывать неочень как-то
ну да, поэтому лучше ANDить в питоне :)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version