Я пытаюсь извлечь блоки данных JSON из потока данных в следующем формате:
Some-Header-Name:Value
Content-Length:Value
Some-Other-Header:Value
{JSON data string of variable length}
Поток содержит много экземпляров вышеуказанного шаблона, и длина данных JSON в каждом экземпляре различна, как указано в предыдущем заголовке Content-Length
.
Я хочу создать регулярное выражение, которое соответствует каждому из значений заголовка длины содержимого и использует его для сопоставления с соответствующим блоком содержимого. Я предполагаю что-то вроде этого ...
Content-Length:(?<LENGTH>\d+).*?\r\n\r\n(?<CONTENT>.{$<LENGTH>})
... но я не уверен, как указать квантификатор для группы CONTENT
в качестве динамического значения.
Примечание. Хотя заголовки находятся на отдельных строках, а содержимое отделяется от заголовков пустой строкой, после содержимого нет перевода строки, поэтому использовать его для определения конца содержимого невозможно.
Любые предложения будут оценены.
Спасибо,
Тим