前辈们好,我想做一个特殊号码(手机号码)筛选器,规则如下:
号码末5位数相同
号码末4位数相同并末4位号码中只包含2、3、5、6
号码末4位数递增
号码末4位AABB并BB中只包含0、1、7
号码末8位ABABABAB
我目前的方案是号码通过文件读入数据存放到数组,然后根据规则写函数来找号码,但是将规则编写成程序有点难,请高人指点?
号码末5位数相同
号码末4位数相同并末4位号码中只包含2、3、5、6
号码末4位数递增
号码末4位AABB并BB中只包含0、1、7
号码末8位ABABABAB
我目前的方案是号码通过文件读入数据存放到数组,然后根据规则写函数来找号码,但是将规则编写成程序有点难,请高人指点?
Private Sub Form_Load()
Dim strData$
Dim reg As Object
Dim matchs As Object, match As Object
strData = "13943588888" & vbCrLf & _
"13943586666" & vbCrLf & _
"13943581324" & vbCrLf & _
"13943555555"
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.IgnoreCase = True
reg.Pattern = "\d{7}([2356])\1\1\1"
Set matchs = reg.Execute(strData)
For Each match In matchs
Debug.Print match
Next
End Sub
第一个的话顺便写下吧,是:
\d{6}(\d)\1\1\1\1其他自己处理
号码末4位AABB并BB中只包含0、1、7
号码末8位ABABABAB 这三个用正则表达式,怎么写啊,请高手再指点一下。
号码末4位AABB并BB中只包含0、1、7 的表达式是 \d{7}(\d)\1([017])\2
号码末8位ABABABAB 的表达式是 \d{3}(\d)(\d)\1\2\1\2\1\2
楼主可以参考下此贴:
http://topic.csdn.net/u/20090921/23/94186fe7-a246-43f6-8ead-55b61c9b8064.html
当年我和楼主一样是正则小菜
这个规则连末四位相同的号码也都给匹配出来,请问如何改进?
例如这个号码也出来:15017291111