web-dev-qa-db-fra.com

Python correspondance de chaîne d'expression régulière?

J'ai beaucoup de mal à essayer de transférer mon expérience avec regex javascript à Python.

J'essaie juste de faire fonctionner ça:

print(re.match('e','test'))

... mais il n'imprime aucun. Si je fais:

print(re.match('e','est'))

Il correspond ... correspond-il par défaut au début de la chaîne? Quand il correspond, comment utiliser le résultat?

Comment puis-je faire le premier match? Existe-t-il une meilleure documentation que les offres du site python?

32
mowwwalker

re.match ajoute implicitement ^ au début de votre expression régulière. En d'autres termes, il ne correspond qu'au début de la chaîne.

re.search réessayera à toutes les positions.

D'une manière générale, je recommande d'utiliser re.search et en ajoutant ^ explicitement quand vous le voulez.

http://docs.python.org/library/re.html

57
Oscar Korz

la documentation est claire je pense.

re.match (modèle, chaîne [ drapeaux]) ¶

If zero or more characters **at the beginning of string** match the

modèle d'expression régulière, retourne une occurrence MatchObject correspondante. Renvoie None si la chaîne ne correspond pas au modèle; notez que ceci est différent d'une correspondance de longueur nulle.

9
Kent