中国开发网: 论坛: 程序员情感CBD: 贴子 571206
李战
JoJo就是专业哈:“正则表达式实际上是一种有限状态机的表示法”
其实我们的计算机也是有限自动机,程序代码就是描述这部有限自动机的方法。
换句话说,可以把正则表达式看作描述字符串匹配的算法代码,也可以说是一种脚本。
显然,要把两个描述集合的脚本来进行运算,求出其并集或交集的脚本,是非常困难的。

当然,从理论上也可行。就像一个函数f1(x,y)描述一个轨迹点的集合,而另一个函数f2(x,y)描述另一个轨迹点的集合,理论上是可以通过两个函数运算来求相交点的函数的。

在数据库的SQL执行中,对两个视图的关联查询也实际上是将描述两个视图的查询语句合并后,再转换为等效的查询语句的。也可以看着两个脚本进行了运算得出等效的脚本。

因此,理论上可以象SQL查询优化器一样,把两个正则表达式合并起来,求出等效的正则表达式。无非是分析其表达的真实语义而已,何况正则表达式本身源于正则集代数,就像SQL源于关系代数一样。

但工作量太大!
李战(leadzen)

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录