neotron
Goto Top

Regex für dummies

Hallo zusammen,

ich benötige 2 regex'es.
Da ich davon so gar keinen Plan habe, hoffe ich das mir jemand diese beiden liefern kann.

Ich habe in einem String folgende 2 Zeichenfolgen jeweils 1x und benötige die Werte welche das XXXX darstellen.
Die Werte sind ganze positive Zahlen ohne Trennzeichen oder Kommastellen bei denen die Anzahl zwischen 1 und 10 Zeichen sein kann.

Einmalig im String sind die Zeichenfolge
"wert":{"WERTNAME":XXXXXXX,  
sowie
"wert2":{"WERTNAME":XXXXXX,  

Wäre echt Klasse wenn mir jemand die beiden regex'es liefern kann.
Ich denke für einen geübten Webentwickler dürfte das doch eigentlich kein Problem darstellen.

Content-ID: 602694

Url: https://administrator.de/contentid/602694

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

145916
145916 08.09.2020 aktualisiert um 11:46:27 Uhr
Goto Top
Das ist ein simpler JSON-String, dafür brauchst du in der Regel kein Regex, das lässt man besser gleich durch einen JSON-Parser laufen (hier mit Powershell)
# JSON String im Objekt umwandeln
$data = @"  
{
   "wert":{"WERTNAME":"XXXXXXX"},  
   "wert2":{"WERTNAME":"XXXXXXX"}  
}
"@ | ConvertFrom-JSON  
# und wert ausgeben
$data.wert.wertname
$data.wert2.wertname
Oder in PHP bringt ebenfalls die passende JSON Funktion schon mit
https://www.php.net/manual/de/function.json-decode.php

Wenn du trotzdem bei Regex bleiben willst warum auch immer
"(wert|wert2)"\s*:\s*{\s*"WERTNAME"\s*:\s*([^,]+)  
https://regex101.com/r/lY2IRR/2
neotron
neotron 08.09.2020 um 11:45:31 Uhr
Goto Top
Super vielen dank dir.
Das ist genau das was ich gesucht habe.

Eine bitte hätte ich noch.
Lässt sich das auch so anpassen, das z.B. zwischen
"wert":{  
und
"WERTNAME":XXXXXXX,  
noch beliebig viele Zeichen vorhanden sein können?
Also wenn dort z.B. noch
"wert3":YYYY,  
und
"wert4":ZZZZ,  
vorkommen, welche aber gar nicht interessieren.
Der String sieht in dem Beispiel dann so aus:
"wert":{"WERTNAME1":WWWW, "WERTNAME2":XXXX, "WERTNAME3":YYYY, "WERTNAME4":ZZZZ}  
wobei nur der Wert für XXXX relevant ist.

Oder sprengt sowas einen regex?
145916
145916 08.09.2020 aktualisiert um 12:07:13 Uhr
Goto Top
https://regex101.com/r/LdDLi3/3

Ich würde an deiner Stelle besser das JSON durch den Parser jagen, ist effektiver. Dafür hat man JSON ja extra geschaffen face-wink.
Guckst du
https://tio.run/##K8go@P/fxr4go4BLJas4P6@4pCgzL13BVkG9Wqk8tahEyapaKdw1KM ...