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 -\d
dowolna 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