java 正则表达式 举例


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这个表达式的值





猜你喜欢

转载自blog.csdn.net/xiaoliuliu2050/article/details/80758934