Separates Zeichenfolgenzeichen ohne Funktionspython [Duplikat]

Dec 02 2020

Können Sie dieses "+ 2x-5y + 8 + 2y" (es gibt keine Leerzeichen zwischen Zeichen) wie [+ 2x, -5y, + 8, + 2y] in Python trennen? Wie?

Antworten

schetefan24 Dec 02 2020 at 22:34

Wenn Sie das Muster der Eingabe für alle möglichen Eingaben kennen, sehen Sie sich reguläre Ausdrücke an

In Ihrem Fall könnte eine Lösung so etwas wie sein

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

re.findall(expression, input)erfordert einen regulären Ausdruck und ein Argument, das analysiert werden soll. In der obigen Lösung besteht das Muster [+-]\d[xy]?aus

  • [+-] entweder ein + oder ein - Symbol
  • \djede Ziffer, wenn Sie erwarten, dass \d+stattdessen mehrere Ziffern verwendet werden (+ bedeutet hier "mindestens eine Wiederholung")
  • [xy]?eines der Zeichen x und y, aber es könnte fehlen. Wenn Sie auch andere Buchstaben erwarten, fügen Sie diese in diese Klammern ein