C# 正则表达式在C中不匹配
我有一个ASP.net字符串,我正试图从中提取ID。 代码如下:C# 正则表达式在C中不匹配,c#,.net,regex,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.Mat
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.IsMatchline始终返回false。您没有在regex上进行分组。给你
var regex = new Regex("/.*ID=\"(.*?)\".*/g");
^ ^
更新:您匹配正则表达式的方式不正确。下面是它的工作原理
var regex = "ID=\"(.*?)\"";
if ( Regex.IsMatch(line, regex) ){
ret = Regex.Match(line, regex).Groups[1].Value;
}
你没有在正则表达式中进行分组。给你
var regex = new Regex("/.*ID=\"(.*?)\".*/g");
^ ^
更新:您匹配正则表达式的方式不正确。下面是它的工作原理
var regex = "ID=\"(.*?)\"";
if ( Regex.IsMatch(line, regex) ){
ret = Regex.Match(line, regex).Groups[1].Value;
}
解决了。工作代码为:
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;
}
解决了。工作代码为:
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;
}
如果正则表达式不起作用,您可以添加一个示例?例如,此行:如果正则表达式不起作用,您可以添加一个示例?例如,此行: