正则表达式找不到与模式的匹配

时间:2015-08-29 12:15:15

标签: html .net regex

在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;
    }

由于一个我完全不理解的原因,正则表达式找不到与此模式匹配的任何内容。它只返回""

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

问题是:

[A-Ba-b0-9/-]+

什么字符范围(x-y)基本上做的是获取一组所有字符。换句话说,a-b = ab之间的所有字母,又称ab。但是,

d27956cca6b75db4d8dd502d0569dd246455131c

看起来像一个十六进制。因此,您应该使用

[A-Fa-f0-9-]+

代替。