正则表达式(一) 软件构造

老师在第一节实验课上讲检查输入的合法性的时候,有提到用正则表达式来检查,但是由于之前并没有学过,所以查了一些资料,深入了解了一下,整理在这里。

正则表达式

正则表达式是一种描述模式的方法,他能用自然、简单而强大的3种组合操作来描述模式。

规则

模式的描述是由三种基本操作以及作为操作数的字符组成。

操作:

1.连接操作:如AB,就是A和B连接,就指定了一种语言{AB},它含有一个由两个字符组成的字符串AB

2.或操作:可指定多种可能的匹配,用“|”表示这个操作,例如 A|B 就指定了一个语言{A,B}。连接操作优先级高于或,所以AB|CDE指定的是{AB,CDE}。

3.闭包操作:可以将模式的部分重复任意多次,包括0次,用“*”标记在被重复的模式之后。闭包优先级高于连接,故AB*表示的是一个A和任意多个B组成的字符串,如A,AB,ABBB…

4.括号,同普通运算,括号可以改变优先级

举几个例子
C(AC|B)D ——————{CACD,CBD}
(A|C)((B|C)D)——————{ABD,ACD,CCD,CBD}
(AB)*——————{空,AB,ABAB,ABABAB…}

额外规则

对基本操作进行扩展。

1.字符集描述符
通配符“.”:能够表示任意字符
指定的集合[] :表示包含在方括号里字符中的任意一个
范围集合:包含在方括号中,如[A-Z],表示A到Z中的任意一个
补集"^":包含在方括号中,表示一个不是这个方括号中的字符

2.闭包的简写
指定闭包内元素的具体重复字数
至少重复一次:标记为“+”,如(AB)+ ———— {AB,ABAB,ABABAB…}
重复0次或1次:标记为“?”,如(AB)? ————{空,AB}
重复指定次数:由{}指定次数,如(AB){3} ————{ABABAB}
重复指定范围的次数:由{}指定次数,如(AB){1-2} ————{AB,ABAB}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值