Caractère de chaîne séparé sans fonction python [dupliquer]

Dec 02 2020

Pouvez-vous séparer ce "+ 2x-5y + 8 + 2y" (il n'y a pas d'espaces entre les caractères) comme [+ 2x, -5y, + 8, + 2y] en python? Comment?

Réponses

schetefan24 Dec 02 2020 at 22:34

si vous connaissez le modèle de l'entrée pour tout ce qui pourrait entrer, jetez un œil aux expressions régulières

Dans votre cas, une solution pourrait être quelque chose comme

import re
a = "+2x-5y+8+2y"
print(re.findall(r"[+-]\d[xy]?", a))

re.findall(expression, input)nécessite une expression régulière et un argument qui doivent être analysés Dans la solution ci-dessus, le modèle se [+-]\d[xy]?compose de

  • [+-] soit un symbole + ou un -
  • \dn'importe quel chiffre, si vous prévoyez d'utiliser plusieurs chiffres à la \d+place (+ signifiant ici "au moins une répétition")
  • [xy]?l'un des caractères x et y, mais il peut manquer. Si vous attendez également d'autres lettres, ajoutez-les entre ces crochets