2016-04-23 8 views
1

ich einen regulären Ausdruck benötigen für das Parsen von Schlüssel-Wert-Paare für die Gleichungen wie:Regex für Key-Wert-Paare

c=a+b 

Ich denke, dass es die folgenden Fall zu entsprechen hat:

Key = value value value 

I folgende Zwecke verwendet:

(\b\w+).?=(.*?(?=\s\w+=|$)) 

aber es funktioniert nicht. Irgendwelche Vorschläge.

Vielen Dank im Voraus.

+0

ist der Wert immer wie 'a + b 'und nicht' x = a + bc% d * e'? – rock321987

+0

Es kann dieses Format auch nehmen. Ich muss nur wissen, wie man mehrere Werte ausdrückt. – Deant

+0

https://regex101.com/r/eX3hP7/1 ist das gut? – rock321987

Antwort

1

können Sie diese Regex verwenden

(\w+)\s*=((?:\w+[-+*%])*?\w+)$ 

Regex Demo

Modifizierte Version mit Leerzeichen

(\w+)\s*=((?:\s*\w+\s*[-+\/*%])*?\s*\w+\s*)$ 
+0

Kann ich eine Regex haben, die a, b und den Operator in verschiedenen Variablen behandelt.Danke – Deant

+0

@Deant können Sie es tun, aber Sie benötigen eine Programmiersprache, um auf diese Werte zugreifen .. Regex allein wird es nicht tun – rock321987

+0

Beachten Sie, dass dies nicht '/', Leerzeichen irgendwo vor dem '=' oder Klammern unterstützt. Beispiel: 'c = (a + b)/d '. Nur neugierig: Warum brauchen Sie dafür einen Regex? – Andrew