91 votes

Que signifie cette expression régulière Django ? `?P`

J'ai l'expression régulière suivante (regex) dans mon urls.py et j'aimerais savoir ce que cela signifie. Plus précisément la partie (?P<category_slug> de l'expression régulière.

 r'^category/(?P<category_slug>[-\w]+)/$

65voto

Marcus Points 5918

(?P<name>regex) - Les crochets regroupent l'expression régulière entre eux. Ils capturent le texte correspondant à l'expression régulière à l'intérieur d'eux qui peut être référencé par le nom entre les crochets pointus. Le nom peut être composé de lettres et de chiffres.

Copier coller de : http://www.regular-expressions.info/retext.html

27voto

ThiefMaster Points 135805

(?P<category_slug>) crée un groupe de correspondance nommé category_slug .

L'expression régulière elle-même correspond à une chaîne commençant par category/ , puis à un mélange de caractères alphanumériques, le tiret - et le trait de soulignement _ , suivi d'une barre oblique finale.

Exemples d'URL acceptées par l'expression régulière :

  • catégorie/foo/
  • catégorie/foo_bar-baz/
  • catégorie/12345/
  • catégorie/q1e2_asdf/

-2voto

BreakBadSP Points 186

Nouveau dans la version 3.6.

(?P<name>...) Similaire aux parenthèses régulières, mais la sous-chaîne mise en correspondance par le groupe est accessible via le nom de nom de groupe symbolique. Les noms de groupe doivent être des identifiants Python valides et chaque nom de groupe ne doit être défini qu'une seule fois dans une expression régulière. Un groupe symbolique est aussi un groupe numéroté, comme si le groupe n'était pas nommé.

copier coller de Python3Regex

-2voto

Tono Kuriakose Points 303

En correspondance de motifs, Utilisez ce modèle pour passer la chaîne

 (?P<username2>[-\w]+)

Ceci pour la valeur entière

 (?P<user_id>[0-9]+)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X