为了账号安全,请及时绑定邮箱和手机立即绑定

为什么正则表达式“.*"匹配任意字符

为什么正则表达式“.*"匹配任意字符

慕沐林林 2018-07-17 07:16:52
在正则表达式中点(".")代表任意一个字符,而星号("*")则代表可以重复0或以上次前一个字符,为什么它们的组合可以代表任意字符呢?在我看来点(".")可以代表[a-z][A-Z][0-9]以及所有的特殊字符,为了便于说明,假设点(".")只代表[a-z]中的任意字符,那么我认为 .* 代表的应该是  a,aa,aaa,aaaa,aaaaa可以重复无限次,b,bb,bbb,bbbb,bbbbb可以重复无限次,c,cc,ccc,cccc,ccccc可以重复无限次,等等吧,为什么实际上是可以代表所有的[a-z]的字母组合呢?
查看完整描述

3 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

a* 代表aaaaa.....
b* 代表bbbbb.....
c* 代表cccccc.....
.* 代表.............. 代表 "任意任意任意任意任意任意任意任意........"

查看完整回答
1 反对 回复 2018-07-18
?
ITMISS

TA贡献1871条经验 获得超8个赞

根据lz的假设.=[a-z],所以.*=[a-z]*,即 [a-z] [a-z] [a-z]……。而lz错误的原因是一厢情愿的当成代数了,.=x,所以.*=xxxxxxxx…….当x=a时,.*=aaaaaaaaa……

查看完整回答
反对 回复 2018-07-18
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

.匹配除了换行符以外的任意一个字符,*表示匹配任意次数,因此".*"就表示匹配任意次除换行符以外的任意字符。

查看完整回答
反对 回复 2018-07-18
  • 3 回答
  • 0 关注
  • 5701 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信