У мене є такий регулярний вираз (регулярний вираз), urls.py
і я хотів би знати, що це означає. Зокрема, (?P<category_slug>
частина регулярного виразу.
r'^category/(?P<category_slug>[-\w]+)/$
Відповіді:
(?P<name>regex)
- Круглі дужки групують регулярні вирази між собою. Вони фіксують текст, відповідний регулярному виразу, всередині них, на який можна вказати назву між різкими дужками. Назва може складатися з літер і цифр.
Скопіюйте вставку з: http://www.regular-expressions.info/refext.html
У django іменовані групи захоплення передаються до вашого подання як аргументи ключових слів.
Безіменні групи захоплення (лише дужки) передаються до вашого подання як аргументи.
? P - це названа група захоплення, на відміну від неназваної групи захоплення.
http://docs.python.org/library/re.html
(?P<name>...)
Подібно до звичайних дужок, але підрядок, що відповідає групі, доступний у решті регулярного виразу через символічне ім'я групи. Імена груп повинні бути дійсними ідентифікаторами Python, і кожне ім'я групи має бути визначене лише один раз у регулярному виразі. Символічна група - це також нумерована група, так само, як ніби група не була названа. Отже, групу з іменем id у прикладі нижче також можна вказати як номерну групу 1.
(?P<category_slug>)
створює групу збігів з іменем category_slug
.
Сам регулярний вираз відповідає рядку, який починається з, category/
а потім поєднується буквено-цифровими символами, тире -
та підкресленням _
, після чого слідова коса риса.
Приклади URL-адрес, прийнятих регулярним виразом:
re
Модуль надає функції, що відповідають виразу. Вони повертають об'єкт Match, якщо текст відповідає регулярному виразу. Потім match.group('category_slug')
повертає вміст групи ( 'foo'
, 'foo_bar-baz'
і т.д.).
Нове у версії 3.6.
(?P<name>...)
Подібно до звичайних дужок, але підрядок, що відповідає групі, доступний через символічне ім'я групи. Імена груп повинні бути дійсними ідентифікаторами Python, і кожне ім'я групи має бути визначене лише один раз у регулярному виразі. Символічна група - це також нумерована група, так само, як ніби група не була названа.
скопіюйте пасту з Python3Regex
У збігу шаблонів використовуйте цей шаблон для передачі рядка
(?P<username2>[-\w]+)
Це для значення числа
(?P<user_id>[0-9]+)
category_slut