Не избыточно ли \ d в ?

Я читаю книгу и вижу множество примеров:

(?P<email> [\w\d.+-]+ # username @ ([\w\d.]+\.)+ # domain name prefix (com|org|edu) # limit the allowed top-level domains ) 

Так как \w означает [a-zA-Z0-9_] , \d означает [0-9] , \d является подмножеством \w .
Итак, разве эти «\ d» не являются избыточными? Пожалуйста, кто-то подтвердит, что мое понимание правильное, поскольку это заставляет меня гать.

One Solution collect form web for “Не избыточно ли \ d в ?”

Да, это избыточно, и простой \w будет работать так же хорошо. См. https://docs.python.org/2/library/re.html.

\d

Если флаг UNICODE не указан, он соответствует любой десятичной цифре; это эквивалентно множеству [0-9] . С UNICODE он будет соответствовать тому, что классифицируется как десятичная цифра в базе данных свойств символов Unicode.

\w

Если флаги LOCALE и UNICODE не указаны, они соответствуют любому буквенно-цифровому символу и подчеркиванию; это эквивалентно множеству [a-zA-Z0-9_] . С помощью LOCALE он будет соответствовать набору [0-9_] плюс любые символы, определенные как буквенно-цифровые для текущего языкового стандарта. Если UNICODE установлен, это будет соответствовать символам [0-9_] плюс все, что классифицируется как буквенно-цифровое в базе данных свойств символов Юникода.

  • Извлечь электронные письма из html с помощью regex
  • Удалить все запятые между котировками
  • Регулярное выражение Python с внешним видом и альтернативами
  • Значение Python RegEx
  • Regex соответствует каждому символу хотя бы один раз
  • Pythonic и эффективный способ определения нескольких регулярных выражений для использования во многих итерациях
  • Строка соответствия Python, если она не начинается с X
  • Регулярное выражение Python для сопоставления электронной почты с именами доменов
  • Python - лучший язык программирования в мире.