Voici un exemple de chaîne, l'espacement après que le chiffre pourrait être différent.
re.findall(r'\n(\w+\w$))', product_list)
3 Réponses :
Cet exemple peut être effectué sans regex, divisé sur : code>, puis \ n code>
L'approche du script ci-dessous consiste à éliminer d'abord le principal terme Terme: \ n code> dans ce cas Acheter: \ n code>. Ensuite, nous utilisons re.findall code> avec le modèle suivant pour rechercher toutes les correspondances: product_list = 'Buy:\n Milk \nYoughurt 4 \nBread \nSausages 4 \nBanana '
product_list = re.sub(r'^[^\s]*\s+', '', product_list)
matches = re.findall(r'(.+?)\s*(?:\n|$)', product_list)
print(matches)
['Milk', 'Youghurt 4', 'Bread', 'Sausages 4', 'Banana']
Que fait le premier '?' dans (. +?) \ s * (?: \ n | $) code> moyenne?
Oh je comprends. Le +? Code> est un opérateur non gourmand qui s'arrête lorsqu'il trouve un premier \ s code>. docs.python.org/2/library/re.html# Syntaxe d'expression régulière
Je suggère d'utiliser une non-regex (une regex semble chère), si vous pouvez garantir un modèle similaire d'entrée: code strong>: p>
Pourquoi ne voudriez-vous pas utiliser la bibliothèque d'expression régulière?
@DanielButler, parce que cela semble pouvoir fonctionner sans une bibliothèque supplémentaire. Mais oui, dépend de l'entrée.
Ok je ne savais pas si je manquais quelque chose