正则表达式结束行和字符串终结符!

时间:2011-06-27 17:06:06

标签: c# regex

GET /server HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:8181
Origin: http://localhost:8080
Sec-WebSocket-Key1: 42100 1 W5V X170y  ER
Sec-WebSocket-Key2: ~\\ 8  I4ms;34 l`1j5 V2h0

Q??6QK?

我收到上述消息并使用c#使用以下正则表达式提取最后一组字符(Q ?? 6QK?):

Regex.Match(message, "\r\n\r\n(?<value>.*?)$", options).Groups["value"].Value;

但正则表达式的结果是返回字符串终结符,如下所示:

问?? 6QK?\ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0

为什么呢?有什么问题?

2 个答案:

答案 0 :(得分:1)

您的字符串最后包含空值。问题在于您传递给正则表达式引擎的字符串,而不是正则表达式引擎本身。

也许你可以发布创建字符串的代码。你可能从字节[]中读得太多了。

答案 1 :(得分:0)

响应中可能存在这些空值。服务器是否指定了内容长度?

您是否有理由不使用HTTP客户端从HTTP服务中读取?你最终会编写很多样板文件(关于连接失败等等),你可以让图书馆为你处理。