c# - Werte extrahieren von Schlüssel-Wert-Paare in string
ich habe einen string wie diesen:
blablablamorecontentblablabla?name=michel&score=5&age=28&iliedabouttheage=true
sieht aus wie eine normale query-string ja, aber ich bin nicht in einer web-Kontext
nun möchte ich zum extrahieren der Werte (nach den = Zeichen), indem Sie Ihre Schlüssel , zum Beispiel,was ist der name (michel), die Partitur(5), das Alter(28) etc.
Normalerweise bin ich parse den string wie bekommen die position in der Zeichenfolge, der das Wort 'name', dann fügen Sie 5 (Länge von 'name='), und nennen diese position "start", dann die Suche nach dem &-Zeichen und den Namen, die position 'Ende', und dann bekommen Sie die Zeichenfolge zwischen den Positionen start und Ende.
Aber es muss doch eine bessere Lösung, dies ist ein regex-Sache?
InformationsquelleAutor der Frage Michel | 2010-01-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen System.Web.HttpUtility.ParseQueryStringvorbei alles, was nach dem Fragezeichen. Sie müssten, um das System zu nutzen.Web-Montage, aber es sollte nicht verlangen, ein web-Kontext.
InformationsquelleAutor der Antwort Eric Petroelje
Wenn Sie möchten, erstellen Sie ein Wörterbuch von Schlüssel/Wert-Paare dann könnten Sie ein bisschen LINQ:
(Sie können überspringen Sie die
Split('?')[1]
Teil, wenn Ihre Zeichenfolge enthalten nur den querystring anstatt die gesamte URL.)InformationsquelleAutor der Antwort LukeH
Nicht wirklich, das kann man nur mit der Split-Funktion (was folgt, ist ein bisschen pseudo-code, den Sie brauchen, um hinzuzufügen, gebunden überprüft)
Dann die Iteration über die Werte, variable und Holen Sie sich die Dinge, die Sie benötigen.
InformationsquelleAutor der Antwort Otávio Décio
Können Sie die split-Methode
Ausgabe:
InformationsquelleAutor der Antwort dcp
Ich würde wahrscheinlich nach unten gehen die Split-route.
InformationsquelleAutor der Antwort Lazarus
Als Sie vorgeschlagen haben, würde ich empfehlen, regex, wahrscheinlich ein Muster, wie
Ich weiß, es ist etwas anderes, die verwendet werden können, um die Ursache zu regex, ignorieren den ersten Teil [Hinzugefügt, denke ich], aber ich kann nicht daran denken. Das wäre bekommen Sie eine kvp -, dann hätten Sie das aufsplitten der Ergebnisse auf "&" (String.Split('&'))
InformationsquelleAutor der Antwort CodeMonkey1313
Könnten Sie tun, eine Spaltung, die auf dem '&' und dann auf '='. Sie hätte sich das '?' am Anfang. Oder wenn der string wird immer 'Aussehen' wie ein querystring, dann könnte man noch behandeln Sie als solche und versuchen, so etwas wie diese Klasse QueryString-Klasse nützlich für die querystring-manipulation, Anhängsel, etc
InformationsquelleAutor der Antwort Wix