2017-05-11 11 views
-3

Kann mir jemand helfen, den Preis aus der folgenden Zeichenfolge mit einer RegEx C# zu extrahieren. Ich habe einige Beispiele ausprobiert und scheint, dass ich es nicht schaffen kann und ich weiß, dass es sehr einfach ist, aber ich verstehe es nicht.C# -RegEx, um einen Wert aus einer Zeichenfolge zu extrahieren

konnte ich keinen Ausweg finden. Und“

String: "ouioieu":"Canister","price":"59.0000","sku":"DECC500","barcode_gtin sj h

Erwartungswert: 59,0000

ich den vollständigen Codeblock als einmal arbeiten müssen, werde ich verwenden die gleiche Methode für andere Orte.

(Warum markiert als Duplikat wegen ähnlicher Antwort mit Anführungszeichen?. Aber dieses hier war das Hauptproblem Doppelpunkt und ich brauchte eine vollständige Antwort und bereits erhalten d.)

+0

Was haben Sie versucht? Sie brauchen keine Regex, nur schneiden "," dann ":" – cutzero

+6

Das sieht aus wie 'JSON' ... * nicht * Regex' für' JSON' – Ian

+0

viel besser verwenden Sie einen JSON-Parser – cutzero

Antwort

2

Als Haftungsausschluss sehen Ihre Daten wie ein Fragment aus JSON aus. In diesem Fall sollten Sie einen JSON-Parser verwenden, um daraus Dinge zu extrahieren. Vorausgesetzt, dass Sie unbedingt einen regulären Ausdruck verwenden müssen hier, betrachten dann das Muster:

.*"price":"(.*?)" 

Dies wird alles erfassen, die price in Anführungszeichen gefolgt. Hier ist ein Beispielcode:

string str = @"""ouioieu"":""Canister"",""price"":""59.0000"",""sku"":""DECC500"",""barcode_gtin sjh"""; 
var m = Regex.Match(str,@".*""price"":""(.*?)"".*"); 
Console.WriteLine(m.Groups[1].Value); 

Ausgang:

59.0000 

Demo hier:

Rextester

+0

Funktioniert gut ... Vielen Dank. – BenW

Verwandte Themen