今天繼續(xù)學習:
多次匹配:
既然+表示1個或者無窮多個婉刀,如:A+ 表示1個或者很多個A
既然.(點)表是任何一個字符脊另,
那么反面:0個或者1個字符A怎么表示呢嗅钻? 答案就是 A?
那么表示可選項:0個或者任意多個A怎么表示呢粤剧? 答案是A*
最后奕污,我總結一下:
A+ 1個或者多個
A?0個或者1個
A* 0個或者多個
那么匹配字符串里面所有的數(shù)字吞鸭,包括小數(shù)點應該怎么寫呢寺董?
\d+\.?\d*
注意這個是有問題的,這里面0.9刻剥,1.2 等都能配置出來
但是 5. 可以識別出為5.遮咖,但是.57 會被識別為57 這就是錯誤的了。
正確解法:(\d+\.?\d*)|(\d*\.?\d+)
中間| 表示或者
其實這樣還是不能滿足全部的需要:
如果我要求的數(shù)量是3個或者4個呢造虏?那么就要用到{}元字符了
如A{3} 表示AAA御吞,A必須出現(xiàn)3次
如果我要求A出現(xiàn)的次數(shù)是一個區(qū)間呢?還是{}漓藕,類似數(shù)學上區(qū)間表示法
A{3陶珠,4} 表示A出現(xiàn)3到4次
A{0,1}其實與A?是互相等價的
如果我要求的是出現(xiàn)至少3次呢
A{3,} 表是至少3次
依此同理:A{0,3}表示A至多出現(xiàn)3次享钞。