Oddzielny znak łańcuchowy bez funkcji python [duplikat]

Dec 02 2020

Czy możesz oddzielić to „+ 2x-5y + 8 + 2y” (nie ma spacji między znakami), na przykład [+ 2x, -5y, + 8, + 2y] w Pythonie? W jaki sposób?

Odpowiedzi

schetefan24 Dec 02 2020 at 22:34

jeśli znasz wzorzec wejścia dla wszystkich, które mogą się pojawić, spójrz na wyrażenia regularne

W twoim przypadku rozwiązaniem może być coś takiego

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

re.findall(expression, input)wymaga wyrażenia regularnego i argumentu, który należy przeanalizować. W powyższym rozwiązaniu wzorzec [+-]\d[xy]?składa się z

  • [+-] symbol + lub -
  • \ddowolna cyfra, jeśli spodziewasz się użycia wielu cyfr \d+(+ oznaczające tutaj „co najmniej jedno powtórzenie”)
  • [xy]?jeden ze znaków x i y, ale może go brakować. Jeśli spodziewasz się również innych liter, dodaj je w tych nawiasach