我试图找到已放入应用程序的所有硬编码ID。我创建了一个控制台应用,我试图找到所有ID。我遇到了几个问题。
我有很多不同的格式,我试图找到,但我想我现在一次做1个:
例如,我有以下内容:
if ((Id != "28" && Id != "29" && Id != "9" && Id != "123" && Id != "904"))
这只会返回" 9"
Match match = Regex.Match(line, "Id != \"[0-9]\"", RegexOptions.IgnoreCase);
if (match.Success) {
string key = match.Groups[0].Value;
Console.WriteLine(key);
}
我想知道如何返回上面示例中找到的每个数字。我想回复:
答案 0 :(得分:2)
您需要匹配一个或多个数字,并拨打Matches
以获取所有匹配,或致电下一个匹配以继续搜索:
Match match = Regex.Match(line, "Id != \"([0-9]+)\"", RegexOptions.IgnoreCase);
while (match.Success) {
string key = match.Groups[1].Value;
Console.WriteLine(key);
match = match.NextMatch();
}
您的代码更改如下:
[0-9]
([0-9]+)
Groups[1]
中的Groups[0]
忽略不相关的部分NextMatch()
。答案 1 :(得分:1)
你应该致电.Matches
MatchCollection matches = Regex.Matches(line, "Id != \"([0-9]+)\"", RegexOptions.IgnoreCase);
foreach(Match match in matches)
string key = match.Groups[1].Value;
Console.WriteLine(key);
}