截取字符串到数组的问题
str="[aaaa]11[bbbbb]
.....
[aaaa]12[bbbbb]
......
..
[aaaa]13[bbbbb]
....."
我想把 11 12 13提取出来放在数组里,我这样写怎么不对?
public string[] GetJieQuAll(string start, string end, string html)
{
Regex regstr = new Regex(start + @"([\s\S]*?)" + end);
MatchCollection mc = regstr.Matches(html);
if (mc.Count > 0)
{
string[] strstring = new string[mc.Count];
int i = 0;
foreach (Match m in mc)
{
strstring[i] = m.Value;
++i;
}
return strstring;
}
return null;
}
arrstr=GetJieQuAll("[aaaa]","[bbbbb]",str); //得到null了
这个GetJieQuAll有那里写不对吗?
[解决办法]
void Main(){string str=@"[aaaa]11[bbbbb].....[aaaa]12[bbbbb]........[aaaa]13[bbbbb]....."; var arrstr=GetJieQuAll("[aaaa]","[bbbbb]",str); //得到null了 Console.WriteLine(arrstr);}public string[] GetJieQuAll(string start, string end, string html) { Regex regstr = new Regex(Regex.Escape(start) + @"([\s\S]*?)" + Regex.Escape(end)); MatchCollection mc = regstr.Matches(html); if (mc.Count > 0) { string[] strstring = new string[mc.Count]; int i = 0; foreach (Match m in mc) { strstring[i] = m.Groups[1].Value; i++; } return strstring; } return null; }
[解决办法]
public static string[] GetJieQuAll(string start, string end, string html)
{
Regex regstr = new Regex(Regex.Escape(start) + @"([\s\S])*?" + Regex.Escape(end));
MatchCollection mc = regstr.Matches(html);
if (mc.Count > 0)
{
string[] strstring = new string[mc.Count];
int i = 0;
foreach (Match m in mc)
{
string s = Regex.Replace(m.Groups[0].ToString(), Regex.Escape(start).ToString(), "");
s = Regex.Replace(s, Regex.Escape(end).ToString(), "");
strstring[i] = s;
++i;
}
return strstring;
}
return null;
}
[解决办法]