[关闭]
@PheonixHkbxoic 2017-11-04T22:56:16.000000Z 字数 874 阅读 974

靓号匹配

RegExp


1.正则

  1. (?=(?=(?:\d?(?:9(?=\d8)|8(?=\d7)|7(?=\d6)|6(?=\d5)|5(?=\d4)|4(?=\d3)|3(?=\d2)|2(?=\d1))\d){3}\d?)|(?=(?:\d?(?:1(?=\d2)|2(?=\d3)|3(?=\d4)|4(?=\d5)|5(?=\d6)|6(?=\d7)|7(?=\d8)|8(?=\d9))\d){3}\d?))(?=(?:(?<a>\d)(?<b>\d)(?=(?:\k<a>\d){3}|(?:\d\k<b>){3})))\d{8}

2.实例

地址:http://regex.zjmainstay.cn/r/eBJvG3/1
匹配靓号

3.解析

I. 匹配4个隔位相同数字

  1. (?=(?:(?<a>\d)(?<b>\d)(?=(?:\k<a>\d){3}|(?:\d\k<b>){3})))
  2. 如:12131415中的1,利用反向引用来实现 4个数字,并隔位。

II. 巧妙的匹配连续数字

(?=(?=(?:\d?(?:9(?=\d8)|8(?=\d7)|7(?=\d6)|6(?=\d5)|5(?=\d4)|4(?=\d3)|3(?=\d2)|2(?=\d1))\d){3}\d?)|(?=(?:\d?(?:1(?=\d2)|2(?=\d3)|3(?=\d4)|4(?=\d5)|5(?=\d6)|6(?=\d7)|7(?=\d8)|8(?=\d9))\d){3}\d?))

匹配连续数字 有两个规则: 这个是重点中的重点

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注