我试图以下列格式从数据流中提取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
组的量词指定为动态值。
注意:虽然标题位于单独的行上,并且内容通过空行与标题分隔,但内容后面没有换行符,因此无法使用它来确定内容的结尾。
任何建议都将不胜感激。
谢谢, 添
答案 0 :(得分:1)
正则表达式匹配字符串,而不是数字,因此它们不能接受字符串的一部分,将其转换为数字,并在同一个正则表达式中重新应用它。
你必须分几步完成:
@"(?<HEADER>...)(?<CONTENT>.{" + length + "})"