从转换后的字节字符串中解析特定字符串

Parse a specific string from a converted bytes string

我有 URL 文件,它以字节为单位返回,我正在使用流 reader 读取这些字节以获取文件中的数据。转换后的 .URL 数据如下。

[DEFAULT]
BASEURL=http://someUrl.com/employee-view/index.aspx?id=123
[InternetShortcut]
URL=http://someUrl.com/employee-view/index.aspx?id=123[=10=]

我只想解析基础 URL 字符串 -- http://someUrl.com/employee-view/index.aspx?id=123

我可以使用以下代码提取 baseUrl 字符串。但我正在寻找更好的方法。

  using (var reader = new StreamReader(new MemoryStream(docStream.DocumentBytes)))
   {
       string f = reader.ReadToEnd();

       if (!string.IsNullOrWhiteSpace(f))
       {
          string[] arr = f.Split('=');
          StringBuilder url = new StringBuilder(arr[1]);
          var a = arr[2].Split('[')[0];
          url.Append(SR.Common.Equals).Append(a);

          string finalUrl = url.ToString();

      } 
   }

我只需要基础 URL 字符串 -- http://someUrl.com/employee-view/index.aspx?id=123

好吧,如果你的意思是更小的代码

使用 Linq:

finalUrl = f.Replace("[=10=]","").Replace("\r","")
    .Split('\n')
    .FirstOrDefault(x=>x.StartsWith("URL"))
    .Split(new[] {'='},2)[1];

使用正则表达式:

finalUrl = Regex.Match(f,@"(?<=URL\=).+").Value;