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