最后10分,雪地裸体跪求一个关于正则的奇怪问题
public static string [] g_findTemplet(string regStr,string info)
{
Regex reg = new Regex(regStr,RegexOptions.IgnoreCase|RegexOptions.Multiline);
MatchCollection Allmatch = reg.Matches(info);
string tmpStr = "";
try
{
if(Allmatch.Count>0)
{
foreach(Match amatch in Allmatch)
{
if(tmpStr.Trim()=="")
{
tmpStr = amatch.Value.Trim();
}
else
{
tmpStr = tmpStr + "," + amatch.Value.Trim();
}
}
string[] result = tmpStr.Split(',');
Array.Sort(result,0,result.Length);
Array.Reverse(result,0,result.Length);
return result;
}
else
{
string[] result = {};
return result;
}
}
catch
{
string[] result = {};
return result;
}
}
现在有个奇怪的问题,我在一个按钮的click事件里调用这个函数2次就出错了,请各位高人帮忙指点。
private void button1_Click(object sender, System.EventArgs e)
{
string[] findTemplet = global_function.g_findTemplet(@"<\$([^<>$]+)\$>",tInfo);
string[] findTemplet1 = global_function.g_findTemplet(@"[\$([^[]$]+)\$]",tInfo2);
}
这样就出错了:
未处理的“System.ArgumentException”类型的异常出现在 system.dll 中。
其他信息: 正在分析“[\$([^[]$]+)\$]”- ) 过多。
请问是为什么呀?
问题点数:0、回复次数:1Top
1 楼OneDotRed(武装到眼神)回复于 2004-12-03 22:10:13 得分 0
不知道你所匹配的是什么?
将[\$([^[]$]+)\$]改为
\[\$([^[]$]+)\$\]试试看是否为你所想要的匹配?Top




