2016-07-06 1 views
0

können also sagen, ich habe eine Zeichenfolge wie folgt kommen:Wie erhalte ich einen Wert aus einer Zeichenkette, die zwischen zwei Trennzeichen liegt, und setze dann einen anderen Wert auf das, was hinter den Trennzeichen steht?

newData = "[Fruit]Apple" 

Wie würde ich diese Variablen aus dem String Set-Set, das in gesendet wurde?

type = "Fruit" 
food = "Apple" 
+0

Scheint eher trivial ... Was hast du versucht, das hat nicht funktioniert? –

+1

'm = re.match (r '\ [(? P w +) \] (? P \ w +)'," [Frucht] Apfel "); type = m.gruppe ('typ'); Essen = M.Gruppe ('Name') '? – Bakuriu

+0

Was ist Nesting? – erip

Antwort

2

replace und split:

type, food = newData.replace('[','').split(']') 

oder ohne replace (Kredit @Bakuriu), mit Slicing:

type, food = newData[1:].split(']') 
+0

Ich sehe nicht wirklich den Wert der Verwendung von 'ersetzen 'hier. Das Format ist so festgelegt, dass es wahrscheinlich besser ist, 'newData [1:]. Split (']')' 'zu machen. Wenn das Format komplizierter wird, würde 'Ersetzen' sowieso nicht funktionieren. – Bakuriu

+0

@Bakuriu Ich habe auch daran gedacht, aber ich kann mir nicht sicher sein, wie '[1:]' auch in einem allgemeinen Fall spielt, sagen wir, wenn '[' nicht am Anfang der Saite steht. –

+0

Wenn '[' nicht am Anfang steht, schlägt Ihre Lösung auch fehl, weil Sie 'type =" Fruit "' (mit Initialraum) anstelle von '' Fruit '' erhalten, was bedeutsam sein kann, wenn diese Zeichenkette zum Nachschlagen verwendet wird – Bakuriu

0

können Sie verwenden .split()

food = newData.split(']')[-1] 
type = newData.split(']')[0].split('[')[-1] 
Verwandte Themen