我得到了一个在C#中不匹配的正则表达式。
string auth = @"oauth_consumer_key=""0685bd9184jfhq22""";
string pattern = "oauth_consumer_key=\"(\\d+)%";
MatchCollection matches = Regex.Matches(auth, pattern);
我总是得到0场比赛。我试图从auth字符串中提取0685bd9184jfhq22字符串。
答案 0 :(得分:1)
那里有\d
,只有数字匹配,而且你的价值中有字母。
密钥本身的表达式可能是[0-9a-z]
而不是\d
。
你错过了正则表达式中的结束语 - 你的引号应该是百分号。
答案 1 :(得分:1)
尝试:
"oauth_consumer_key=\"(.+)\""
得到结果:
matches[0].Groups[1].Value
答案 2 :(得分:1)
如果您想匹配整个auth
字符串,请尝试以下操作:
string auth = @"oauth_consumer_key=""0685bd9184jfhq22""";
string pattern = "oauth_consumer_key=\"(.*)\"";
var match = Regex.Match(auth, pattern);
Console.WriteLine(match.Value);
如果您想提取0685bd9184jfhq22
值,只需将pattern
替换为:
string pattern = "(?<=oauth_consumer_key=\")(.*)(?=\")";