我有一个浏览器代理字符串列表,每个字符串看起来像-
Mozilla/5.0 (iPad;CPU OS 6_1(如Mac OS X)
AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0
移动/10 b141
Safari/8536.25
使用foreach
循环,我将遍历这些字符串的列表。在每次迭代中,我只想提取我分配给变量的操作系统版本,然后再进行进一步处理。
foreach (var e in AgentStrings)
{
var myOS = e.UserAgent GET JUST THE OS (6_1_3) ??
// will do more stuff here
}
在代理字符串中检索OS和Like之间的值最简单的方法是什么?
可能最好的方法是检查字符串是否包含您正在寻找的操作系统的短列表:
string theOS = "";
var agentString = e.UserAgent;
if(agentString.Contains("Mac OS X")
theOS = "Mac OS X";
else if(agentString.Contains("Windows 8")
theOS = "Windows 8";
等。
MSDN和其他Stack Overflow问题似乎就是这么建议的
您可以尝试用空格分隔字符串。
Boolean next = False;
String Version = "";
foreach (String x in a.split(" ")
{
if (next) {Version = x; break;}
if (x.equals("OS"))
{ next = True;}
}