Как исправить «<string> DeprecationWarning: неверная escape-последовательность» в Python? - PullRequest
0 голосов
/ 26 марта 2020

Я использую pytest-3 / python3

def check_email(email):
    **regex = '^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$'**
    if(re.search(regex,email)):  
        return True
    else:
        return False 

** часть, которая дала ошибку

Ответы [ 2 ]

1 голос
/ 26 марта 2020

Использование «\ ~» не печатает буквально «\ ~», но будет сокращено до escape-последовательности, подобно тому, как «\ n» - символ новой строки. Вы можете использовать, например, "\\w" для получения литерала "\ w".

Или вы можете предварительно представить всю строку с помощью r, например r'your \string'

1 голос
/ 26 марта 2020

Используйте необработанную строку

regex = r'^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$'

Обратите внимание на префикс r. Это гарантирует, что \ не будет интерпретироваться как возможные escape-последовательности, а просто как \.

Поскольку \ имеет смысл в регулярных выражениях, это хорошая привычка в python - всегда использовать необработанные строки для регулярных выражений . (См. Документацию re)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...