У меня есть строка Json, которая мне нужна для извлечения некоторых данных с помощью Regex в C #
Строка выглядит примерно так:
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": [
{
"arrayKey1": 1,
"arrayKey2": "something",
"arrayKey3": "somethingelse"
},
{
"arrayKey1": 2,
"arrayKey2": "something2",
"arrayKey3": "somethingelse2"
},
{
"arrayKey1": 3,
"arrayKey2": "something3",
"arrayKey3": "somethingelse3"
}
],
"some very long text here": ""
"anotherKey": "value",
"keylast": "valuelast"
}
Я хочу извлечь значения массива с именованными группами, я сделал это с помощью следующего регулярного выражения: (?:"arrayKey1": (?<arrayKey1>[^"]+),[\n\t ]+"arrayKey2": "(?<arrayKey2>[^"]+)",[\n\t ]+"arrayKey3": "(?<arrayKey3>[^"]+)")
Это прекрасно работает, и я получаю каждое совпадение для каждого элемента массива с 3 группами каждого ключа.
Теперь я хочу добавить дополнительное совпадение, которое будет содержать только значение «anotherKey»
Я не могу добраться до работы. Вот некоторые регулярные выражения, которые я пробовал, но не работал:
(?:"arrayKey1": (?<arrayKey1>[^"]+),[\n\t ]+"arrayKey2": "(?<arrayKey2>[^"]+)",[\n\t ]+"arrayKey3": "(?<arrayKey3>[^"]+)")(?:[\s\S]*)(?:"anotherKey": "(?<anotherKey>[^"]+)")
Этот действительно получает «anotherKey», но возвращает только первый элемент в массиве, а не все.
Также: https://regex101.com/r/mfXlRs/1
Может кто-нибудь правильно меня поставить?
Спасибо