J'ai une liste de réactions chimiques et je tiens à scinder ces réactions à l'aide d'un délimiteur de sorte que je me retrouve avec les espèces impliquées dans la réaction. Y a-t-il un moyen de sortir de cela? Par exemple:
H2 + O2 = 2H2O Na2 + Cl2 = NaCl Ag + Cl2 = AgCl
3 Réponses :
Vous pouvez le faire avec Vous pouvez utiliser et si vous souhaitez supprimer des numéros de tête des mots, vous pouvez utiliser un motif comme celui-ci: p> re.split () code>
, scindant la chaîne sur un ou plusieurs caractères non mots em>: re.findall () code> pour trouver tous les" mots " : p>
import re s = "H2 + O2 = 2H2O" print (re.split("\W+", s)) # re.split takes a regular expression on which you can split the string. # \W represents non-word character. For ASCII, word characters are [a-zA-Z0-9_] # + represents one or more occurrences. In your example, it splitted the string from ' + ' and ' = '
Le str.split ne peut pas faire cela. Vous pouvez donc diviser votre chaîne de la manière suivante:
première utilise second est fractionné manuellement: p> N'oubliez pas que vous devriez rayer () vos éléments de liste (ou faire le strilreplace ("", ""). p> p> re code>: p>
Cela dépend de l'endroit où vous voulez aller avec le résultat. Vous recherchez simplement une solution sale rapide ou une solution appropriée pour analyser les équations de manière générale?
De plus: La gauche de gauche de l'H2O est-elle limitée dans votre produit de réaction attendue intentionnelle, ou est-ce une faute de frappe? Donc [H2, O2, H2O] ou [H2, O2, 2H2O]
Dupliqué possible de diviser les chaînes en mots avec plusieurs délimiteurs de limites de mots a>
Voir aussi meta.stackexchange.com/ Questions / 5234 / ...