我有一个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。
答案 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;
}