正则表达式指定的参数超出了有效值的范围

时间:2016-02-23 14:48:24

标签: c# regex

我正在尝试从网站网址上进行正则表达式,但它会给我一个错误:

  

指定的参数超出了有效值范围

Regex re = new Regex("\"id\":\"([0 - 9] +)\"");
string ree = re.Matches(sr)[0].Value;
MessageBox.Show(ree);

网址输出只是带文字的空白页面。 http://prntscr.com/a6xyi0

1 个答案:

答案 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);
}

你会得到这样的一些:

enter image description here