新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:正则表达式的原理和介绍,应用(概念篇)

正则表达式的原理和介绍,应用(概念篇)

新客网 XKER.COM 2004-12-29 来源: 收藏本文
极小元的概念
定义:对于任何的集合S1与S2,当S1∈S2且S1∩S2=空(没有空这个符号,我用中文字空代替)时,则称S1为S2的一极小元。
OK说完了定义,我们来说说关于正则匹配的东东,可以把要寻找的那个字符串看成一个集合S1,而要寻找的是一个极小元,也就是一个子集
而离散的正则定理:每个不空的集合,都有一极小元,明确的说出了,正则匹配的道理,我们要去寻找的是一个子集,也就是把大的字符串进行了分割,而其元素为一个个小的字符串子集
正则公理的数学表达式:A≠空 推出 (存在x)(x∈A∧x∩A=空)

现在是编译原理篇,编译原理是根据离散的内容而来的
首先是要说正规文法和有限自动机
正规文法(Chomsky 3型文法)
正规式(Regular Expression):
定义:设A是非空的有限字母表,则:
1)任意,空,全集都是正规式
2)若α,β是正则,则α|β,α·β,α*,β*也是正则(关于这个是涉及到文法的问题了,也就是大家常用的w+之类的东东了)
3)正则只能通过有限次使用1,2规则而获得

写点儿正规式大家都熟悉的α=a+b+c+所代表的正规集为L(α),它可以写作
L(α)={abc,aabc,abc,abcc,aaabc…}看到这里大家如果用过正则的话,可以很明白的看出来联系了
关于正规集的一些数学方面的东东我就不多说了,比如交换率,结合率之类的
而关于多个一个一长串的比如用或语句进行的东西还需要进行方程组的运算,不过说了
其实这里还有一个概念就是当你用while之类的语句的时候其实就是底层在用正则公式,而js或vbs用正则之所以慢是因为多重的正则寻找,就是正则下的正则,可以看看木狐狸的一个寻找的最优公式的贴子,在多重寻找之后速度自然就慢了

现在用VBS写一下,简单的事例
<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 3</title>
</head>
<script language="vbscript">
str="ssuuiadseestiaosu"
dim regex,match
set regex=new RegExp '设置正则对象
regex.Global = True '设置全局匹配
regex.IgnoreCase = false '设置区分大小写,如果false 是区分大小写的
regex.pattern="[a-z]" '设置匹配内容
set mm=regex.execute(str) '执行
for each match1 in mm '在数组中查看
document.write match1
document.write("<br>")
document.write match1.FirstIndex
document.write("<br>")
next
</script>
<body>

</body>

</html>


收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐