Der Versuch, spalten diese Zeile enthalten:Wie eine mathematische Formel spalten, die von Variablen besteht, die Striche
formula='%abc-def%+%hij-klm%/%opq+rst%-%uvw-xyz%
Die Variable mit den "%"
Zeichen enthalten und muss erhalten bleiben.
Ich möchte auf +-/*
aufgeteilt werden, ohne die Variable aufgrund der '-'
im Namen zu teilen.
Gibt es einen einfachen Weg, ohne eine for-Schleife zu verwenden, um jedes Zeichen zu scannen?
1. Weg:
Splits die Variablen (nicht gut):
re.compile("[\+\/\-\*]").split(formula)
['%abc', 'def%', '%hij', 'klm%', '%opq', 'rst%', '%uvw', 'xyz%']
2. Weg:
Verliert das% (nicht gut) :
re.compile("%[\+\/\-\*]%").split(formula)
['%abc-def', 'hij-klm', 'opq+rst', 'uvw-xyz%']
Erwartete Ausgabe:
Ich bin für etwas, das nachgeben werde:
['%abc-def%', '%hij-klm%', '%opq+rst%', '%uvw-xyz%']
Danke, Dan
Werden jemals andere '%' Zeichen in der Zeichenkette vorkommen oder sind sie nur für Variablen zulässig? –
THey sind nur um Variablen zulässig. – musca999
Wenn Sie zu einer komplexeren Grammatik expandieren möchten, ziehen Sie in Betracht, von Regex zu einem Parsergenerator zu wechseln, wie [Yapps] (http://theory.stanford.edu/~amitp/yapps/) oder [ANTLR] (http: : //www.antlr.org/). –