Maison  >  Article  >  développement back-end  >  Correspondance gourmande Python et correspondance multiligne

Correspondance gourmande Python et correspondance multiligne

不言
不言original
2018-04-19 10:29:482216parcourir

Ce qui suit est un exemple de correspondance gourmande et de correspondance multiligne en Python. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Jetons un coup d'oeil ensemble

1 drapeau non gourmand

>>> re.findall(r"a(\d+?)", "a23b")
  ['2']
>>> re.findall(r"a(\d+)", "a23b")
  ['23']

Payer attention à la comparaison Dans ce cas :

>>> re.findall(r"a(\d+)b", "a23b")
  ['23']
>>> re.findall(r"a(\d+?)b", "a23b")
  ['23']

2 Si vous souhaitez une correspondance multi-lignes, ajoutez re.S et re .M flags

re.S :. Correspondra aux caractères de nouvelle ligne, par défaut Ne correspondra pas aux caractères de nouvelle ligne

>>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b")
  []
>>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b", re.S)
  [('23', '34')]
>>>

.

re.M : Le drapeau ^$ correspondra à chaque ligne Par défaut, ^ et $ ne correspondront qu'à la première ligne

>>> re.findall(r"^a(\d+)b", "a23b\na34b")
  ['23']
>>> re.findall(r"^a(\d+)b", "a23b\na34b", re.M)
  ['23', '34']

Cependant. , s'il n'y a pas de logo ^,

>>> re.findall(r"a(\d+)b", "a23b\na23b")
  ['23', '23']

Recommandations associées :

Écrivez un simple robot d'exploration Web dans Python pour capturer des vidéos

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn