正规式和正则表达式的异同
正规式的定义及使⽤⽅法(转⾃)
设∑是有穷字母表,并定义辅助字母表∑’={Φ, ε, | , . , *, (, )}
1. ε,Φ都是∑上的正规式,它们所表⽰的正规集为{ε}, Φ ;
2. 任何a是⼀个正规式,若a∈∑,它所表⽰的正规集为{a};正则匹配特定字符串
3. 如果R1和R2是正规式,它们表⽰的正规集分别为L1和L2,则 R1|R2 , R1·R2 , R1* , (R1) 也是正规式,并且它们所表⽰的正规集分别为
L1∪L2;L1L2;L1* ; L1
4. 仅有有限次使⽤上述三步骤⽽定义的表达式才是∑上的正规式,仅有这些正规式表⽰的字集才是∑上的正规集。
注意:不要混淆Φ和ε,正规表达式ε描述的语⾔只含⼀个空字符串ε,⽽Φ表⽰的语⾔不含有任何字符串。程序设计语⾔的单词都能⽤正规式来定义。若两个正规式e1,e2表⽰的正规集相同,则称它们等价。记作:e1=e2。
例 : 令∑={a,b},则∑上的正规式和相应正规集为
正规式正规集
a{a}
a|b{a,b}
ab{ab}
(a|b)(a|b){aa,ab,ba,bb}
a *{ε ,a,aa, ……任意个a的串}
(a|b)*{ε ,a,aa, ……任意个a的串}{ε ,a,b,aa,ab,bb ……所有由 a和b组成的串}
(a|b)* (aa|bb)(a|b)*∑上所有含有两个相继的a或两个相继的b组成的串}
正则表达式的定义和⽤法
  正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的⼀种逻辑公式,就是⽤事先定义好的⼀些特定字符、及这些特定字符的组合,组成⼀个“规则字符串”,这个“规则字符串”⽤来表达对字符串的⼀种过滤逻辑。正则表达式是⼀种⽂本模式,模式描述在搜索⽂本时要匹配的⼀个或多个字符串。
给定⼀个正则表达式和另⼀个字符串,我们可以达到如下的⽬的:
  1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):
  2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
异同(转⾃)
1)相同点
都是⼀种模式,⽤来匹配验证的⼀种规则。
(2)不同点
正规式:多和有限⾃动机相互转换,来判断是否和相应的输⼊输出对应。
正则表达式:多⽤于输⼊的验证,在客户端输⼊的时候就去验证输⼊的东西是否符合要求,⼤⼤减少了后台的判断。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。