月归档:2010年05月

正则表达式--递归匹配、非贪婪匹配与分组替换

1. 表达式的递归匹配

有时候,我们需要用正则表达式来分析一个计算式中的括号配对情况。比如, 使用表达式 "\( [^)]* \)" 或者 "\( .*? \)" 可以匹配一对小括号。但是如果括号 内还嵌有一层括号的话 ,如 "( ( ) )",则这种写法将不能够匹配正确,得到的结果是 "( ( )" 。类似情况的还有 HTML 中支持嵌套的标签如 "<font> </font>" 等。本节将要讨论的是,想办法把有嵌套的的成对括号或者成对标签匹配出来。
匹配未知层次的嵌套:
有的正则表达式引擎,专门针对这种嵌套提供了支持。并且在栈空间允许的情况下,能够支持任意未知层次的嵌套:比如 Perl,PHP,GRETA 等。在 PHP 和 GRETA 中,表达式中使用 "(?R)" 来表示嵌套部分。
匹配嵌套了未知层次的 "小括号对" 的表达式写法如下:"\( ([^()] | (?R))* \)"。
[Perl...

继续阅读

发表在 article | 标签为 | 正则表达式--递归匹配、非贪婪匹配与分组替换已关闭评论

SQL Server 2005 之 事物复制

SQL Server 2005相对于SQL Server 2000来说,无论是性能还是功能都有一个相当大的提高,甚至可以用“革命”来形容这一次升级。SQL Server 2005使 SQL Server 跻身于企业级数据库行列。在数据高可用性方面,SQL Server 2005为用户提供了数据镜像、复制、故障转移群集、日志传送功能。本文向读者简单介绍SQL Server 2005的复制功能。

    一、 “复制”简介

    复制是将数据或数据库对象从一个数据库复制和分发到另外一个数据库,并进行数据同步,从而使源数据库和目标数据库保持一致。使用复制,可以在局域网和广域网、拨号连接、无线连接和 Internet 上将数据分发到不同位置以及分发给远程或移动用户。

    一组SQL Server 2005复制有发布服务器、分发服务器、订阅服服务器(图1:复制服务器之间的关系图)组成,它们之间的关系类似于书报行业的报社或出版社、邮局或书店、读者之间的关系。

&n...

继续阅读

发表在 article | 标签为 , | 36条评论

编写简单的脚本解释器

首先声明一下以下文章是跟据我用C#写的脚本解释器的经验之谈,如不认可也请不要找本人。

一般写个脚本解释器需要以下的步骤:

源程序-词法分析-语法分析-生成中间代码-解释中间代码

一、我写的脚本解释器就是跟据上面的过程写的,下面说明一下本脚本解释器的语法。

1、语法规则:

(1)script_begin代表语句开始

(2)script_end代表语句结束

(3)条件语句:if 表达式 语句 endif

(4)循环语句:while 表达式 语句 endwhile

(5)赋值语句:变量=表达式

(6)表达式:

(为方便我们这里使用产生式来说明)

expr->expr+term|expr-term|term|term>=term|term<=term|term==term|term!=term|term>term|term<term|term

term->term*factor|term/factor|factor

factor->(expr)|数字|变量|字符串|!变量

(注意:产生式中的->代表前面的值可以是后面中的任何一个值,|代表着或的意思)

(7)变量:本脚本只有全局...

继续阅读

发表在 article | 标签为 , | 编写简单的脚本解释器已关闭评论

窥视生命的本质

美国科学家制造出完全由人造基因控制的单细胞细菌

20日,美国科学家宣布世界首例人造生命———完全由人造基因控制的单细胞细菌诞生,并将它命名为“人造儿”。这项具有里程碑意义的实验表明,新的生命体可以在实验室里“被创造”,而不是一定要通过“进化”来完成。

“一个新时代到来”

这项研究由美国基因遗传学顶尖科学家克莱格·凡特主持,历时10多年,耗资超过4000万美元。研究团队共有20多位科学家。

名为“人造儿”的人造细菌内核是移植于实验室、完全人工合成的基因组。凡特博士表示这意味着“一个新时代的到来”。

科学家们首先选取一种名为丝状支原体的细菌,对其基因组进行解码并复制,产生人造的合成基因组。然后,将人造基因组移植入另一种称为山羊支原体的细菌,通过分裂和增生,细菌内部的细胞逐渐为人造基因所控制,最终成为一种全新的生命。在培养皿中,合成细菌的分裂等行为就像天然细菌一样。

科学家们在“人造儿”D...

继续阅读

发表在 info | 窥视生命的本质已关闭评论

用户体验设计

------------------------------------------------------------

UED = user experience design,用户体验设计

 

  UED的本意是用户体验设计,是英文User Experience Design的缩写。通常的理解,我们做的一切都是为了呈现在您眼前的页面。

全称是Customer Research & User Experience Design Center(即用户研究与体验设计中心)

-------------------------------------------------------------

观察各领导先驱者,他们走在你前面

是反省还是遥望,成功是必然还是偶然?

淘宝UED

蓝色理想

携程UED

网易UED

人人网FED

腾讯CDC

腾讯ISD

盛大UED

搜狐UED

口碑网UED

支付宝UED

继续阅读

发表在 mood | 用户体验设计已关闭评论

HTTP(CODE)代码

Information Codes | Success Codes | Redirection Codes | Failure Codes | Server Error Codes | Internet API Error Codes | FTP API Error Codes | Gopher API Error Codes | HTTP API Error Codes | Additional...

继续阅读

发表在 article | HTTP(CODE)代码已关闭评论

Win2003网站服务器的安全配置全攻略

======================= 第一类 ===============================

本配置仅适合Win2003,部分内容也适合于Win2000。很多人觉得3389不安全,其实只要设置好,密码够长,攻破3389也不是件容易的事情,我觉得别的远程软件都很慢,还是使用了3389连接。

经测试,本配置在Win2003 + IIS6.0 + Serv-U + SQL Serv...

继续阅读

发表在 article | 标签为 | Win2003网站服务器的安全配置全攻略已关闭评论

ASP.NET视图状态验证MAC失败 解决办法

验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <m … 继续阅读

发表在 article | 标签为 , | ASP.NET视图状态验证MAC失败 解决办法已关闭评论

flash与后台数据交换方法整理

1.LoadVars(XML)
2.Flash Remoting
3.Webservice
4.XMLSocket

一.LoadVars篇
我之所以把XML也放在这里说,是因为XML和LoadVars数据交互的方式大体相同,就是传递时的数据内容有点不一样而已!
我现在列出在开发过程最常用的"用户密码验证"实例,加以说明!

引用
// Flash代码;
//=======================================================;
//定义LoadVars对象;
var data_lv = new LoadVars();
//提交的用户名变量和参数值;
data_lv.username = "kinglong";
//提交的密码变量和参数值;
data_lv.password = "king";
//提交后返回结果;
data_lv.onLoad = function(success){
//success,数据提交是否成功;
//这个只是表示数据传输是否成功,并不是用户验证的结果;
if(success...

继续阅读

发表在 article | 标签为 | 443条评论

演练如何缓存依赖于 SQL Server 数据库中数据的 ASP.NET 页

此演练演示如何缓存依赖于 SQL Server 数据库中数据的 ASP.NET 页。

ASP.NET 输出缓存的一项高级功能是 SQL 缓存依赖项。SQL 缓存依赖项使您可以缓存依赖于 SQL Server 表中数据的页。您可以配置 SQL Server 和 ASP.NET 以缓存页请求,降低服务器工作负荷,直到页所依赖的数据已在 SQL Server 中更新为止。对于相对保持静态的产品目录或客户注...

继续阅读

发表在 article | 标签为 , | 演练如何缓存依赖于 SQL Server 数据库中数据的 ASP.NET 页已关闭评论