|
我们在做WebForm开发的时候经常会用到模版,可以方便地生成静态html页面,提高网站的访问速度,普通的模版应用有一定的局限性,一旦数量一多,势必会降低计算机的执行效率和代码的冗余度;但如果使用正则表达式,实限起来就非常容易,C#对正则表达式的支持非常好,不管html代码里有多少个模版标签,我们都可以一次把它全部取出来;当然,模版的写法也要有一定的规则(这很容易做到)!
例如:我们在代码里面都按 $i_*(n1,n2,n3,n4,n5)$ 这样的标签定义(*为任意字符串),里面的[n1,n2,n3,n4,n5]为任意数字或字符,可以是文章的ID、截取字符串的长度、记录数等信息。
然后我们在程序里面可以用如下正则表达式获取模版标签:
//正则表达式
string pat=@"\$i_.+?\([0-9]+,[0-9]+,[0-9]+,[0-9]+,[0-9]+\)?\$";
Regex r=new Regex(pat,RegexOptions.IgnoreCase);
MatchCollection matchs=r.Matches(mb); //mb为html模版页面的代在码
//生成相关内容
foreach(Match match in matchs)
{
Value=match.Value.Substring(match.Value.IndexOf("(")+1,match.Value.IndexOf(")")-match.Value.IndexOf("(")-1);
//Value为标签中的“n1,n2,n3,n4,n5”,在这里做你想做的事..... |
|