2018-01-01正则表达式学习三

今天继续学习:
多次匹配:
既然+表示1个或者无穷多个,如:A+ 表示1个或者很多个A
既然.(点)表是任何一个字符,
那么反面:0个或者1个字符A怎么表示呢? 答案就是 A?
那么表示可选项:0个或者任意多个A怎么表示呢? 答案是A*

最后,我总结一下:
A+ 1个或者多个
A?0个或者1个
A* 0个或者多个

那么匹配字符串里面所有的数字,包括小数点应该怎么写呢?

\d+\.?\d* 
注意这个是有问题的,这里面0.9,1.2 等都能配置出来
但是 5. 可以识别出为5.,但是.57 会被识别为57 这就是错误的了。
正确解法:(\d+\.?\d*)|(\d*\.?\d+)
中间| 表示或者

其实这样还是不能满足全部的需要:

如果我要求的数量是3个或者4个呢?那么就要用到{}元字符了

如A{3} 表示AAA,A必须出现3次

如果我要求A出现的次数是一个区间呢?还是{},类似数学上区间表示法

A{3,4} 表示A出现3到4次
A{0,1}其实与A?是互相等价的

如果我要求的是出现至少3次呢

A{3,} 表是至少3次
依此同理:A{0,3}表示A至多出现3次。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容