Regex行尾和字符串终止符

本文关键字:终止 字符串 Regex | 更新日期: 2023-09-27 18:00:41

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#使用以下Regex:提取最后一组特征(Q??6QK?(

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

但是Regex的结果是返回字符串终止符字符,如下所示:

Q??6QK''0''0''0''0''0''0''0''0''0''0

为什么?怎么了?

Regex行尾和字符串终止符

您的字符串末尾包含null。问题出在传递给正则表达式引擎的字符串中,而不是正则表达式引擎本身。

也许您可以发布创建字符串的代码。您可能从字节[]中读取的内容有点太多。

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

您不使用HTTP客户端从HTTP服务中进行读取是有原因的吗?你最终会写很多样板文件(处理连接故障等(,你可以让库来帮你处理。