Python regex pour correspondre à de multiples reprises
Je suis en train de faire correspondre un modèle à l'encontre des chaînes de caractères qui peuvent avoir plusieurs instances de la répétition. J'ai besoin de chaque cas séparément. re.findall()
devrait le faire, mais je ne sais pas ce que je fais mal.
pattern = re.compile('/review: (http://url.com/(\d+)\s?)+/', re.IGNORECASE)
match = pattern.findall('this is the message. review: http://url.com/123 http://url.com/456')
J'ai besoin"http://url.com/123', http://url.com/456 et les deux numéros 123 & 456 être différents éléments de la match
liste.
J'ai aussi essayé de '/review: ((http://url.com/(\d+)\s?)+)/'
que le modèle, mais pas de chance.
il suffit de supprimer l'examen: la portion de la deuxième http n'aurez plus qu'avant.
oui mais j'ai besoin qu'il y est, il fait partie de l'expression régulière. Je n'ai pas besoin de n'IMPORTE quelle url il y a, seulement ceux qui à la suite de la chaîne de l'examen:'
oui mais j'ai besoin qu'il y est, il fait partie de l'expression régulière. Je n'ai pas besoin de n'IMPORTE quelle url il y a, seulement ceux qui à la suite de la chaîne de l'examen:'
OriginalL'auteur mavili | 2013-07-01
Vous devez vous connecter pour publier un commentaire.
De l'utiliser. Vous devez placer la "révision" en dehors de la capture d'un groupe pour atteindre le résultat souhaité.
Cela donne de sortie
?
après(?:review )
est aussi critique qu'il ne me donne pas tous les matchs sans elle. 😉N'oubliez pas de
import re
OriginalL'auteur Narendra Yadala
Vous avez extra /'s dans la regex. En python, le modèle devrait être une chaîne de caractères. par exemple au lieu de cela:
Il devrait être:
Aussi généralement en python vous fait utiliser un "brut" de la chaîne comme ceci:
L'extra-r sur le devant de la chaîne vous évite d'avoir à faire beaucoup de barre oblique inverse échapper etc.
OriginalL'auteur John Montgomery
Utiliser une approche en deux étapes: la Première à obtenir tout ce à partir de "la revue:" en fin de vie, puis marquer.
OriginalL'auteur til_b