我得到了一个在 C# 中不匹配的正则表达式。
string auth = @"oauth_consumer_key=""0685bd9184jfhq22""";
string pattern = "oauth_consumer_key=\"(\\d+)%";
MatchCollection matches = Regex.Matches(auth, pattern);
我总是得到 0 场比赛。我正在尝试从 auth 字符串中提取 0685bd9184jfhq22 字符串。
你\d
在那里,它只匹配数字,你的值中有字母。
键本身的表达式可能会[0-9a-z]
代替\d
.
您在正则表达式中缺少结束引号 - 您在引号应该在的位置有一个百分号。
尝试:
"oauth_consumer_key=\"(.+)\""
并得到结果:
matches[0].Groups[1].Value
如果你想匹配整个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=\")(.*)(?=\")";