抓取字符串中的值

时间:2014-03-21 17:47:38

标签: c# regex string linq

我有一个浏览器代理字符串列表,每个字符串看起来像 -

  

Mozilla / 5.0(iPad; CPU OS 6_1,如Mac OS X)
  AppleWebKit / 536.26(KHTML,与Gecko一样)版本/ 6.0
  移动/ 10B141
  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之间的值的最简单方法是什么?

2 个答案:

答案 0 :(得分:0)

可能最好的方法是检查字符串是否包含您正在寻找的操作系统的简短列表:

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";

MSDNother Stack Overflow questions似乎建议这样做

答案 1 :(得分:0)

你可以尝试用空格分割字符串。

Boolean next = False;
String Version = "";
 foreach (String x in a.split(" ")
  {
      if (next) {Version = x; break;}
      if (x.equals("OS"))
       { next = True;}

  }