我正在尝试从网站网址上进行正则表达式,但它会给我一个错误:
指定的参数超出了有效值范围
Regex re = new Regex("\"id\":\"([0 - 9] +)\"");
string ree = re.Matches(sr)[0].Value;
MessageBox.Show(ree);
网址输出只是带文字的空白页面。 http://prntscr.com/a6xyi0
答案 0 :(得分:1)
你必须移动你不想匹配的所有空格,你可以使用[0-9] +或\ d +
您可以遍历字符串中每个id的所有匹配项:
Regex re = new Regex("\"id\":\"(?<id>\\d+)\"");
string[] ree = re.Matches(sr).Cast<Match>().Select(m => m.Value).ToArray();
// Or if you just want the id:
string[] ree = re.Matches(sr).Cast<Match>().Select(m => m.Groups["id"].Value).ToArray();
foreach (var item in ree)
{
//do something
}
编辑:
如果您想将结果添加到ListView
,那么这应该适合您:
var sr = "{\"id\":\"11111\", ...} {\"id\":\"22222\", ...} {\"id\":\"33333\", ...} {\"id\":\"44444\", ...}";
Regex re = new Regex("\"id\":\"(?<id>\\d+)\"");
var ree = re.Matches(sr).Cast<Match>().Select(m => m.Groups["id"].Value);
foreach (var item in ree)
{
var lvItem = new ListViewItem(new string[] { item, "who column" });
listView.Items.Add(lvItem);
}
你会得到这样的一些: