Titre: [Python] Utiliser les regex Posté par: BelledeNuit le 03 Septembre 2009 à 21:03:53 Bonsoir !
Je me suis lancée dans le Python il y a peu, et pour les épreuves de NC. J'aimerais utiliser des regex et plus précisément faire des matches, pour extirper seulement certains caractères d'une expression. Mais je patauge dans la semoule ! J'ai 3 docs d'ouvertes, mais j'avoue que je n'y comprends pas grand chose. J'ai trouvé ce bout de code : Code: >>> m = re.match([color=red]r[/color]"(\d+)[color=teal]\[/color].(\d+)", "24.1632") De plus, si je remplace "24.1632" par "24xcf1632" ca me renvoie une erreur. ( 'NoneType' object has no attribute 'groups' ) Merci de m'éclairer, Bonne soirée à tous ! Titre: Re : [Python] Utiliser les regex Posté par: _o_ le 03 Septembre 2009 à 23:53:17 Je ne vois pas a quoi correspond le r backslashes are not handled in any special way in a string literal prefixed with 'r'. Même si, en l'occurrence, je ne vois pas bien l'intérêt. Citation et le \. Le backslash permet d'échapper le "." qui suit. Ce dernier a en effet une signification particulière dans les expressions rationnelles, puisqu'il matche n'importe quel caractère. Quand il est échappé, cela signifie que l'on attend le caractère littéral ".". Citation De plus, si je remplace "24.1632" par "24xcf1632" ca me renvoie une erreur. ( 'NoneType' object has no attribute 'groups' ) C'est tout à fait normal : la chaîne "24xcf1632" ne matche pas l'expression rationnelle, donc le résultat m ne vaut rien, est donc de type None, et n'a aucun attribut. Pour rappel, groups() retourne les éléments capturés par les parenthèses, mais cela n'a de sens que si la chaîne matche l'expression. Tout est expliqué ici : http://docs.python.org/library/re.html Ou en français : http://quentel.pierre.free.fr/python-trad/module-re.html Titre: Re : [Python] Utiliser les regex Posté par: BelledeNuit le 04 Septembre 2009 à 11:37:18 Salut !
J'ai pris cet exemple sur la doc en anglais, j'ai déja les deux liens ! Merci quand même ! Je crois que je comprends un peu mieux. Je vais faire des essais pratiques. Bon après midi ! Edit : Merci beaucoup ! Ça marche ! |