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

在正则表达式中点(".")代表任意一个字符,而星号("*")则代表可以重复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]的字母组合呢?


慕沐林林
浏览 5712回答 3
3回答

回首忆惘然

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

ITMISS

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

慕姐4208626

.匹配除了换行符以外的任意一个字符,*表示匹配任意次数,因此".*"就表示匹配任意次除换行符以外的任意字符。
打开App,查看更多内容
随时随地看视频慕课网APP