生成HTML静态化一个很有用的正则表达式的替换功能
来源:互联网 发布:物理名师课堂软件 编辑:程序博客网 时间:2024/06/06 05:45
生成HTML静态化无非就是模板标签替换,但有细节上有一个功能确需要高级一点的标签替换,也就是能接收设置的参数的标签替换。
日常的替换比如 {$siteTitle$} 也许在程序中就直接 替换成了 siteTitle 这个函数,然后获取它return的内容即可
但是如果比如取5条最新新闻 {$getNews(5)$} 有对应的函数 getNews(5)
但是如果有修改成10条,你就要加一个替换规则 {$getNews(10)$} getNews(10)
当然在书写规则时这种情况并不多,而且中在最初开发时就确定了的,只是维护时显得不方便,每次修改条数就要修改替换规则。
有必要实现参数的识别,经过研究了一阵,实现了这个功能,代码保存如下
public string getContent(string len) {
string rv = "ooxx"+len+"次<br />";
return rv;
}
protected void Page_Load(object sender, EventArgs e)
{
string tag = "{getContent(3)}{getContent(5)}{getContent(8)}";
//要求上实现不管tag括号内是什么数字,都能获取这个值并调用函数返回对应数量的数据
string pattern = "{getContent\\((\\d)\\)}";
string replacement = getContent("$1");
string result = Regex.Replace(tag, pattern, replacement);
Response.Write(result);}
关于这其中,getContent("$1");
在replace 方法中使用 $1 来引用所保存的第一个子匹配。如果有多个子匹配,则可以用 $2, $3 等继续引用。
转载网上的说明如下
http://msdn.microsoft.com:80/scripting/default.htm
下面的正则表达式可以提供这个功能。对 JScript,为:
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/
对 VBScript 为:
"(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)"
第一个附加子表达式是用来捕获该 web 地址的协议部分。该子表达式匹配位于一个冒号和两个正斜杠之前的任何单词。第二个附加子表达式捕获该地址的域名地址。该子表达式匹配不包括 '^'、 '/' 或 ':' 字符的任何字符序列。第三个附加子表达式捕获网站端口号码,如果指定了该端口号。该子表达式匹配后跟一个冒号的零或多个数字。最后,第四个附加子表达式捕获由该 web 地址指定的路径以及\或者页面信息。该子表达式匹配一个和多个除'#' 或空格之外的字符。
将该正则表达式应用于上面所示的 URI 后,子匹配包含下述内容:
RegExp.$1 包含 "http"
RegExp.$2 包含 "msdn.microsoft.com"
RegExp.$3 包含 ":80"
RegExp.$4 包含 "/scripting/default.htm"
- 生成HTML静态化一个很有用的正则表达式的替换功能
- 使用正则表达式的替换功能
- 很有用的正则表达式
- 28-正则表达式-05-正则表达式(常见的功能-替换)
- 有用的正则表达式
- 有用的正则表达式
- 有用的正则表达式
- 有用的正则表达式
- 有用的正则表达式
- 正则的替换功能
- Editplus替换HTML标签的正则表达式(转)
- Python正则表达式过滤或者替换HTML标签的方法
- Dreamweaver的正则表达式查找替换功能(转)
- 正则表达式 验证邮箱地址(替换功能的练习)
- 活用Word的查找替换功能(兼有正则表达式)
- 常见对象_正则表达式的替换功能
- 从.net生成的html中找到的一个验证email地址的函数(正则表达式)
- 一些有用的正则表达式
- 使用File.Create等一句代码创建文件的注意一点
- sql在进行模糊查找时特殊字符的转义
- 一个sql取指定日期指定天数内的记录
- 一个优秀的全兼容JS获取图片尺寸封装,无需onload完全完即能得到尺寸
- 各种跨域上传的实现方法
- 生成HTML静态化一个很有用的正则表达式的替换功能
- asp.net c#基于DEC的加密与解密
- 关于style.filter失效的可能情况之一
- .net 2.0与.net 4.0在母板页生成标签上的一个差异
- 给ff的专用的一个css hack
- mfc ListControl 重绘网格线
- IE6中多个绝对定位和相对定位重叠时z-index失效的问题
- .net2.0 Intelligencia.UrlRewriter在(iis6,iis7)伪静态的实现
- 扫盲:js改变css文件中display:none的设置