C#中收到字符串格式报文按指定报文头分隔
时间: 2024-09-09 21:13:26 浏览: 27
在C#中,如果你收到了一个包含特定报文头格式的字符串报文,并想要按照报文头将其分割,你可以使用`String.Split()`方法配合正则表达式。假设报文头总是以某个特定字符或模式开始,例如`"BEGIN:"`,你可以这样做:
```csharp
string rawMessage = "BEGIN: some data here... END: more data";
// 定义报文头分隔符
string delimiter = "BEGIN: ";
// 使用正则表达式查找报文头的位置
MatchCollection matches = Regex.Matches(rawMessage, $@"^{delimiter}");
// 分割报文
List<string> messageParts = new List<string>();
foreach (Match match in matches)
{
string part = rawMessage.Substring(match.Index + delimiter.Length);
// 如果报文结束标记存在,继续处理到下一个部分
if (part.Contains("END:"))
{
int endIndex = part.IndexOf("END:") + "END:".Length;
messageParts.Add(part.Substring(0, endIndex));
part = "";
}
else
{
messageParts.Add(part);
}
}
// 报文头和数据已分别存储在messageParts中
```