我在提取特定字符串时遇到问题。我有以下字符串(可能有所不同):
show inventory<br><br>Name: "My Device Name One",DESCR: "ASA 5506-X
SSD"<br>PID: ASA5506-SSD,VID: N/A,sn: MSA203301BV<br>WARD-99ST-FW01#Name:
"Chassis",DESCR: "ASA 5506-X with FirePOWER services,8GE,AC,DES"<br>PID: ASA5506,VID: V06,sn: JMX2042Y12V<br>Name: "Storage Device 1",DESCR: "ASA5506-X SSD"<br>
PID: ASA5506-SSD,sn:MSA203301BV<br>WARD-99ST-FW01#
我想从该字符串中解析“ sn”,其中“名称” =机箱。因此,从上面的字符串中,我需要result =“ JMX2042Y12V”。我不想使用</br>
标签进行解析,因为在某些情况下它们不会出现。
到目前为止,我已经使用了此方法:(无法正常工作,它基于我不想使用的</br>
标签。
private static List<string> ExtractFromBody(string body,string start,string end)
{
List<string> matched = new List<string>();
int indexStart = 0;
int indexEnd = 0;
bool exit = false;
while (!exit)
{
indexStart = body.IndexOf(start);
if (indexStart != -1)
{
indexEnd = indexStart + body.Substring(indexStart).IndexOf(end);
matched.Add(body.Substring(indexStart + start.Length,indexEnd - indexStart - start.Length));
body = body.Substring(indexEnd + end.Length);
}
else
{
exit = true;
}
}
return matched;
}
我这样打电话:
var result= ExtractFromBody(St,",sn: ","<br/>");
foreach (var r in result)
{
Console.Write(r);
}
Console.ReadLine();