我试图使用正则表达式从某些文本中获取匹配项,但代码无法产生任何结果。正文包含action="https://www.localhost.com/en/account?dwcont=C338711466"我的代码是HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.localhost.com/en/account");httpWebRequest.Method = "GET";httpWebRequest.CookieContainer = this.cookieJar;string text2;using (StreamReader streamReader = new StreamReader(httpWebRequest.GetResponse().GetResponseStream())){ string text = streamReader.ReadToEnd().Trim().ToString(); string[] array = (from Match match in Regex.Matches(text, "\"https://www.localhost.com/en/account?dwcont=(.+?)\"") select match.Groups[1].Value).ToArray<string>(); text2 = array[0];}MessageBox.Show(text2);我在数组中收到错误:System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'有解决办法吗?
1 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
您可能会array
使用
var array = Regex.Matches(text, "\"https://www\\.localhost\\.com/en/account\\?dwcont=([^\"]+)") .Cast<Match>() .Select(x => x.Groups[1].Value);
然后,使用获取第一个匹配项
text2 = array.FirstOrDefault();
请注意,您需要在正则表达式模式中转义文字.
和符号,并且由于您使用的是常规字符串文字,因此您应该使用双反斜杠来创建正则表达式转义。?
您收到Index was outside the bounds of the array
错误是因为您的正则表达式无法提取任何匹配项并array[0]
尝试访问null
值。
- 1 回答
- 0 关注
- 91 浏览
添加回答
举报
0/150
提交
取消