Expressions régulières

Gueustou -  
 Utilisateur anonyme -
Bonjour,

Bonjour,
Je voudrais savoir comment peut -on, avec des expressions régulières, effectuer la tâche suivante:
L’utilisateur Tape au clavier : la somme de 25 et 45 est :
Et le programme lui renvoie 25 + 45 = 70
Je vous remercie d’avance !


4 réponses

Utilisateur anonyme
 
Bonsoir l’expression régulière va te permettre d’extraire 25, 45 et le mot somme.
Ensuite, à toi déduire quel opérateur utiliser et de faire l’opération.

Pour la regex, voir cet exemple.
[http://regexstorm.net/tester?p=L%5Bae%5D+%5Cb%28%5Cw%2B%29%5Cb+de+%28%5Cd%2B%29+et+%28%5Cd%2B%29&i=La+somme+de+45+et+25+est%0D%0ALe+produit+de+30+et+15+est L[ae] \b(\w+)\b de (\d+) et (\d+)]

Regarde l’onglet Context

0
gueustou
 
je te remercie pour ta réponse.
J'ai pu faire un truc, qui fonctionne, dans certains cas .
 a = b = 0
    phrase = input("donner la tâche à faire \n")
    if re.search("(somme){1}\s(de){1}\s\d{1,}\s(et){1}\s\d{1,}", phrase) is not None:
        liste = re.findall("\d{1,}\.?\d{0,}",phrase)
        for i in range(len(liste)):
            a = liste[i]
            a = float(a)
            b += a
        print ("Cette somme est égale à: \n", b)
            
    else:
        print("Je ne peux rien faire")


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.


Merci d'y penser dans tes prochains messages.
0
Utilisateur anonyme
 
T’es allé voir le lien que je t’ai donné ?
0
Gueustou
 
Bonjour,
J’ai regardé, mais je n’ai pas compris.
J’ai découvert les expressions régulières hier, du coup, ce n’est pas encore clair dans ma tête.
Merci et bonne journée !
0
Gueustou
 
Bonjour,
J’ai regardé, mais je n’ai pas compris.
J’ai découvert les expressions régulières hier, du coup, ce n’est pas encore clair dans ma tête.
Merci et bonne journée !
0
Utilisateur anonyme
 
On a tous débuté, c'est pas un problème, cependant, je t'ai proposé une syntaxe qui marche (au moins pour somme et produit) et tu la modifies pour qu'elle ne marche plus.

Ça aurait été plus judicieux de demander comment elle fonctionne, non?

L[ae] 
veut dire un L majuscule suivi de a ou e, suivi d'un espace
\b
est une limite de mot, pas sûr que ce soit obligé ici
\w+
plusieurs caractères alpha numériques à la suite, entouré de parenthèses donc se sera une capture
\d+
plusieurs chiffres à la suite, capturé aussi
0