/ regulárne výrazy - regex, json, jmeter

regulárne výrazy - regex, json, jmeter

Mám odpoveď JSON, ktorú chcem analyzovať regulárnymi výrazmi, ktoré obsahujú pole objektov

...
{
"Id":"01",
"Subject":"Sub",
....
"Status":"Completed"
...
},
{
"Id":"02",
"Subject":"Sub",
....
"Status":"Waiting"
...
}

a chcem dostať id objektu, ktorý čaká na stav.

Keď s tým rozoberiem "Id": "(.+?)",[sS]+?"Subject": "Sub",[sS]+?"Status": "Waiting"; zhoduje sa z "Čakania" na prvé "Id" (dozadu); určite chcem Id objektu, ktorý čaká.

Nejaká pomoc?

odpovede:

1 pre odpoveď č. 1

Skúste to:

{s*"Id":"(d+)"[^}]+"Status":"Waiting"s*}

0 pre odpoveď č. 2

Vyskúšaj tento:

(?s)"Id":s*"([^"]+)[^}]*?"Status":s*"Waiting"

Bude fungovať, ak nie je vnorené {} medzi vlastnosťami Id a Status.


0 pre odpoveď č. 3

Ak môžete použiť Json Parser, použite ho.

Toto bude fungovať tak dlho, kým nie sú vnorené zátvorky.

{[^{}]*Id":"(d+)[^{}]*s"Status":"Waiting"

Pozrite sa na to tu na Regexr

Váš výraz

"Id": "(.+?)",[sS]+?"Subject": "Sub",[sS]+?"Status": "Waiting"
^^^^^^^^
fails here

Tá časť zodpovedá všetkému od prvého "Sub", kým nenájde prvú "Status": "Waiting"