在C#项目中,正则表达式对我来说很奇怪。
我有这个方法:
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;
}
由于一个我完全不理解的原因,正则表达式找不到与此模式匹配的任何内容。它只返回""
。
我该如何解决这个问题?
答案 0 :(得分:2)
问题是:
[A-Ba-b0-9/-]+
什么字符范围(x-y
)基本上做的是获取一组所有字符。换句话说,a-b
= a
和b
之间的所有字母,又称a
和b
。但是,
d27956cca6b75db4d8dd502d0569dd246455131c
看起来像一个十六进制。因此,您应该使用
[A-Fa-f0-9-]+
代替。