java 正規表示式 舉例

xiaoliuliu2050發表於2018-06-21

1     \d*(\d)\1{6,}\d*       
匹配至少含有七位相同數字的數值字串

(\d) 用括號括起來標識分組,\1 代表分組內的表示式 ,這個叫做捕獲匹配,即\1 代表的內容是(\d) 匹配之後儲存下來的。

(\d)\1{6,}  兩個組合起來,就是 匹配至少 7個相同數字。

2    (\d)\1{3}(\d)\2{3}

匹配一個8位數字,並且前四位相同,後四位相同。

同上例子: (\d)\1{3} 代表匹配一個數字至少四次  

(\d)\2{3} 也代表匹配一個陣列至少四次。


3   \d?(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){6,}\d*   
匹配連續7個以上連續數字 (類似 0123456)

?:0 匹配表示式0  ,其中?: 意思它是一個非捕獲匹配,不儲存供以後使用的匹配

換句話說,後面不可以用 \1 這種方式獲取這個 分組值。

?= 是站位符   0( ?=1)  可以匹配01字串 ,但是不可以匹配02 字串,

因為他的意思就是 0後面必須跟著1 ,但是最後匹配的到內容 只是 0 ,(?=1) 只是說0 這個表示式後必須跟1 。

匹配的還是 0這個表示式的值





相關文章