今天继续学习:
多次匹配:
既然+表示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次。