2011-09-30 4 views
28

Je passe un moment fou à essayer de transférer mon expérience avec javascript regex à Python.Python regex string correspondant?

Je suis juste essayer d'obtenir ce travail:

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

... mais il imprime Aucun. Si oui:

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

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

Comment faire le premier match? Y a-t-il une meilleure documentation que le site python?

Répondre

53

re.match ajoute implicitement ^ au début de votre regex. En d'autres termes, il correspond seulement au début de la chaîne.

re.search réessayer à toutes les positions.

De manière générale, je recommande d'utiliser re.search et d'ajouter ^ explicitement quand vous le voulez.

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

+1

Comportement subtil. –

9

la documentation est clair, je pense.

re.match (pattern, string [, drapeaux]) ¶

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

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