Python expressions régulières de l'affectation à des groupes nommés
Lorsque vous utilisez des variables (est-ce le bon mot?) en python expressions régulières comme ceci: "bla (?P\w+)" ("valeur" serait la variable), comment pourriez-vous rendre la valeur de la variable sera le texte après "blah" à la fin de la ligne ou à un caractère particulier, ne prêtant aucune attention à la teneur réelle de la variable. Par exemple, c'est de la pseudo-code pour ce que je veux:
>>> import re
>>> p = re.compile("say (?P<value>continue_until_text_after_assignment_is_recognized) endsay")
>>> m = p.match("say Hello hi yo endsay")
>>> m.group('value')
'Hello hi yo'
Note: Le titre est sans doute pas compréhensible. C'est parce que je ne savais pas comment le dire. Désolé si j'ai fait toute confusion.
J'ai corrigé votre titre un peu, mais je pense qu'il était clair à partir de votre code d'exemple de ce que tu voulais (au moins, je l'espère, je l'ai interprété à droite).
Pour info, le truc entre parenthèses est appelé un "groupe". Dans votre exemple de "valeur" est un nom. Donc, vous correspondez à un de "nom de groupe".
Pour info, le truc entre parenthèses est appelé un "groupe". Dans votre exemple de "valeur" est un nom. Donc, vous correspondez à un de "nom de groupe".
OriginalL'auteur None | 2010-04-26
Vous devez vous connecter pour publier un commentaire.
Pour que vous voudriez une expression régulière de
La période correspond à tout caractère, et le signe plus indique que cela devrait être répété une ou plusieurs fois... donc
.+
entend toute séquence d'un ou de plusieurs personnages. Lorsque vous mettezendsay
à la fin, le moteur d'expression régulière sera assurez-vous que quelle que soit la il correspond en fait à la fin avec cette chaîne.OriginalL'auteur
Vous avez besoin de spécifier ce que vous voulez faire correspondre si le texte est, par exemple,
Si vous voulez correspondre à l'ensemble de la
hello there and endsay but some more
sous-chaîne, @David réponse est bonne. Sinon, pourhello there and
, le motif doit être:avec un point d'interrogation après le signe plus à faire non-greedy (par défaut c'est gourmand, engloutir tous il le peut, tout en permettant un ensemble de correspondance; non-greedy signifie qu'elle gobe comme peu que possible, à nouveau, tout en permettant à l'ensemble du match).
OriginalL'auteur