我的代码是:
htmltoextract = new Uri("http://test");
client = new WebClient();
f = client.DownloadString(htmltoextract);
client.Dispose();
string pattern = @"(\d{12})";
Regex ex = new Regex(pattern, RegexOptions.Singleline);
MatchCollection matches = ex.Matches(f);
IFormatProvider provider = CultureInfo.InvariantCulture;
List<DateTime> dateTime = new List<DateTime>();
foreach (Match match in matches)
{
dateTime.Add(DateTime.ParseExact(match.Value, "yyyyMMddHHmm", provider));
}
在f
里面的某个地方,我有这一行:
var imageUrls = ["/image2.ashx?region=is&time=201501102145&ir=false","/image2.ashx?region=is&time=201501102130&ir=false","/image2.ashx?region=is&time=201501102115&ir=false","/image2.ashx?region=is&time=201501102100&ir=false","/image2.ashx?region=is&time=201501102045&ir=false","/image2.ashx?region=is&time=201501102030&ir=false","/image2.ashx?region=is&time=201501102015&ir=false","/image2.ashx?region=is&time=201501102000&ir=false","/image2.ashx?region=is&time=201501101945&ir=false"];
我需要将其提取两次到两个列表:
第一个List是dateTime
第二个List应该是字符串,它应该添加到它:
/image2.ashx?region=is&time=201501102145&ir=false
/image2.ashx?region=is&time=201501102130&ir=false
/image2.ashx?region=is&time=201501102115&ir=false
/image2.ashx?region=is&time=201501102100&ir=false
/image2.ashx?region=is&time=201501102045&ir=false
/image2.ashx?region=is&time=201501102030&ir=false
/image2.ashx?region=is&time=201501102015&ir=false
/image2.ashx?region=is&time=201501102000&ir=false
/image2.ashx?region=is&time=201501101945&ir=false
我有两个问题:
如何提取时间和字符串/image2.ashx?region=is&time=201501101945&ir=false
如何仅从部分中提取所有内容:var imageUrls = [&#34; ........
由于在f
里面还有其他地方,我需要从var imageUrls = [&#34;并以&#34;];
答案 0 :(得分:0)
步骤:
<script>
标记。String.IndexOf
匹配以删除网址列表String.Split
来切换为唯一的Uri.Query
部分而不是Get individual query parameters from Uri 注意:如果JavaScript太复杂,您可能需要获得真正的JavaScript解析器......
答案 1 :(得分:0)
这就是我要做的。它不是纯粹的解决方案,但它确实有效。
(以下假设您的数据格式在合理的时间段内保持完全相同。如果管理源的人员发生变化,此代码将中断!)
var imageUrls = [
和];
。路径A:
string.split()
,创建一个url字符串数组。myUri
)。您现在可以通过HttpUtility.ParseQueryString(myUri.Query).Get("time");
路径B:
答案 2 :(得分:0)