Module re : comment écrire le pattern

Résolu

Bonjour,

Une simple question:

Le code ci-dessous

import re

pat1 = r"^affiche '.+'"
pat2 = r"^affiche .+"
s = "affiche 'hello'"

if re.match(pat1, s):
    print('ok 1')
if re.match(pat2, s):
    print('ok 2')

m'affiche :

ok1
ok2

alors qu'il ne devrait afficher que

ok1

(je cherche des simples quotes dans la chaîne à tester.)

2 réponses

  1. Modérateur

    Bonjour,

    Dans la seconde recherche .+ prend n'importe quel caractère, autant de fois qu'il y en a, 'hello' répond à la question.


    0
    1. Bonjour jee_pee,

      C'est pas faux !

      problème résolu:

      pat2 = r"^affiche [^']+$"
      0