我有一个像这样的字符串:

 some_string = "A simple demo of SMS text messaging.\r\n+CMGW: 3216\r\n\r\nOK\r\n\"


即时通讯来自vb.net,我需要在c#中知道,如果我知道CMGW的位置,如何从中获取“ 3216”?

我知道我的起点应该是CMGW + 6的位置,但是一旦找到“ \ r”,我如何使它停止?

再次,我的最终结果应该是3216

谢谢!

最佳答案

从您感兴趣的地方开始找到\r的索引,然后使用Substring overload which takes a length

// Production code: add validation here.
// (Check for each index being -1, meaning "not found")
int cmgwIndex = text.IndexOf("CMGW: ");

// Just a helper variable; makes the code below slightly prettier
int startIndex = cmgwIndex + 6;
int crIndex = text.IndexOf("\r", startIndex);

string middlePart = text.Substring(startIndex, crIndex - startIndex);

09-11 03:23