expression régulière python "\ 1"
Quelqu'un peut-il me dire ce qui ne "\1" dans l'expression régulière suivante en Python?
re.sub(r'(\b[a-z]+) ', r'', 'cat in the the hat')
Merci!
source d'informationauteur Mengwen
Vous devez vous connecter pour publier un commentaire.
\1
est équivalent àre.search(...).group(1)
la première parenthèse délimité par expression à l'intérieur de la regex.C'est aussi, fait amusant, une partie de la raison que les expressions régulières sont significativement plus lente en Python et d'autres langages de programmation que requis par la théorie de la CS.
La première
\1
signifie que le premier groupe - c'est à dire la première expression entre crochets(\b[a-z]+)
De la docs
\number
"Correspond au contenu du groupe du même nombre. Les groupes sont numérotés à partir de 1. Par exemple, (.+) \1 correspond 'le' ou '55 55', mais pas 'lela' (notez l'espace après le groupe)"
Dans votre cas, il est à la recherche d'une répétition de "mot" (le bien, le bloc de lettres minuscules).
La deuxième
\1
est le remplacement de l'utiliser dans le cas d'une correspondance, de manière répétée mot est remplacé par un seul mot.\1
est une référence arrière.Elle correspond, ce que jamais égalé dans votre parenthèses, dans ce cas
the
Vous disent simplement
chat dans ( ' "') " la " chapeau
De la python docs pour le module re:
Votre exemple est essentiellement la même que ce qui est expliqué dans les docs.