0

我得到了一个在 C# 中不匹配的正则表达式。

string auth = @"oauth_consumer_key=""0685bd9184jfhq22""";
string pattern = "oauth_consumer_key=\"(\\d+)%";
MatchCollection matches = Regex.Matches(auth, pattern);

我总是得到 0 场比赛。我正在尝试从 auth 字符串中提取 0685bd9184jfhq22 字符串。

4

3 回答 3

1

\d在那里,它只匹配数字,你的值中有字母。

键本身的表达式可能会[0-9a-z]代替\d.

您在正则表达式中缺少结束引号 -​​ 您在引号应该在的位置有一个百分号。

于 2013-06-07T23:26:48.493 回答
1

尝试:

"oauth_consumer_key=\"(.+)\""

并得到结果:

matches[0].Groups[1].Value
于 2013-06-07T23:27:07.007 回答
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=\")(.*)(?=\")";
于 2013-06-07T23:31:52.323 回答