正则表达式与C#不匹配

时间:2014-02-14 11:57:36

标签: c# .net regex

我有一个ASP.net字符串,我正在尝试从中提取ID。 这是代码:

public static string getName(string line)
{
    string ret = "";

    if (!line.Contains("ID="))
        return ret;
    var regex = new Regex("/.*ID=\".*?\".*/g");
    if (regex.IsMatch(line))
        ret = regex.Match(line).Groups[1].Value;
    return ret;
}

regex.IsMatch(line)总是返回false。

2 个答案:

答案 0 :(得分:7)

你没有在你的正则表达式进行分组。这是

var regex = new Regex("/.*ID=\"(.*?)\".*/g");
                               ^   ^

更新:匹配正则表达式的方式不正确。这是它的工作原理。

var regex = "ID=\"(.*?)\"";
if ( Regex.IsMatch(line, regex) ){
    ret = Regex.Match(line, regex).Groups[1].Value;
}

答案 1 :(得分:0)

解决了它。工作代码是:

public static string getName(string line)
        {
            string ret = "";

            if (!line.Contains("ID="))
                return ret;
            var regex = ".*ID=\"(.*?)\".*";
            if (Regex.IsMatch(line, regex) )
                ret = Regex.Match(line, regex).Groups[1].Value;
            return ret;
        }