Уведомления

Группа в Telegram: @pythonsu

#1 Май 28, 2013 08:44:30

MikaMika
Зарегистрирован: 2012-11-07
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с регулярным выражением. Как исключить слово?

Привет.
Простая функция проверяющая совпадение с шаблоном.
Шаблон задан регулярным выражением.

import re
def active_link(path, pattern):
    if re.search(pattern, path):
        print('OK')
    else:
        print('NO')
active_link(request.path  '/super|/super/[\w]+)

Как можно исправить регулярное выражение, что бы нельзя было ввести:
/super/search
Можно просто /super, можно любые символы, которые относятся к \w после /super/, но нельзя слово - “search”.
active_link(request.path  '/super|/super/[\w]+ ??? Что нужно здесь исправить?)

Отредактировано MikaMika (Май 28, 2013 08:45:01)

Офлайн

#2 Май 28, 2013 13:05:10

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

Проблема с регулярным выражением. Как исключить слово?

>>> import re
>>> 
>>> def active_link(path, pattern):
...     if re.search(pattern, path):
...         print('OK')
...     else:
...         print('NO')
... 
>>> active_link('/super/search', r'^(/super|/super/(?!search)\w+)$')
NO
>>> active_link('/super', r'^(/super|/super/(?!search)\w+)$')
OK
>>> active_link('/super/a', r'^(/super|/super/(?!search)\w+)$')
OK
>>>



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version