正则表达式找不到与模式匹配的项
Regex doesn't find a match with a pattern
在 C# 项目中,Regex 对我来说表现得很奇怪。
我有这个方法:
string RegTest()
{
string HTML = "<input type=\"hidden\" name=\"authenticity_token\" value=\"d27956cca6b75db4d8dd502d0569dd246455131c\">";
Regex AuthRegex = new Regex(@"name=""authenticity_token"" value=""([A-Ba-b0-9/-]+)""");
string Auth = AuthRegex.Match(HTML).Value;
return Auth;
}
由于我完全不明白的原因,正则表达式找不到与此模式的任何匹配项。它只是 returns ""
.
我该如何解决这个问题?
问题是:
[A-Ba-b0-9/-]+
字符范围 (x-y
) 基本上做的是获取介于两者之间的一组所有字符。换句话说,a-b
= a
和 b
之间的所有字母,也就是 a
和 b
之间的所有字母。然而,
d27956cca6b75db4d8dd502d0569dd246455131c
看起来像一个十六进制。因此,您应该使用
[A-Fa-f0-9-]+
相反。
在 C# 项目中,Regex 对我来说表现得很奇怪。
我有这个方法:
string RegTest()
{
string HTML = "<input type=\"hidden\" name=\"authenticity_token\" value=\"d27956cca6b75db4d8dd502d0569dd246455131c\">";
Regex AuthRegex = new Regex(@"name=""authenticity_token"" value=""([A-Ba-b0-9/-]+)""");
string Auth = AuthRegex.Match(HTML).Value;
return Auth;
}
由于我完全不明白的原因,正则表达式找不到与此模式的任何匹配项。它只是 returns ""
.
我该如何解决这个问题?
问题是:
[A-Ba-b0-9/-]+
字符范围 (x-y
) 基本上做的是获取介于两者之间的一组所有字符。换句话说,a-b
= a
和 b
之间的所有字母,也就是 a
和 b
之间的所有字母。然而,
d27956cca6b75db4d8dd502d0569dd246455131c
看起来像一个十六进制。因此,您应该使用
[A-Fa-f0-9-]+
相反。