急,请高人指点(特殊号码筛选)

dwygsliurunbin 2010-05-26 02:31:20
前辈们好,我想做一个特殊号码(手机号码)筛选器,规则如下:
号码末5位数相同
号码末4位数相同并末4位号码中只包含2、3、5、6
号码末4位数递增
号码末4位AABB并BB中只包含0、1、7
号码末8位ABABABAB
我目前的方案是号码通过文件读入数据存放到数组,然后根据规则写函数来找号码,但是将规则编写成程序有点难,请高人指点?
...全文
114 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2010-06-10
  • 打赏
  • 举报
回复
你可以优先匹配都相等的,都相等的匹配完了就不继续往下匹配了
dwygsliurunbin 2010-06-07
  • 打赏
  • 举报
回复
号码末4位AABB并BB中只包含0、1、7 的表达式是 \d{7}(\d)\1([017])\2
这个规则连末四位相同的号码也都给匹配出来,请问如何改进?
例如这个号码也出来:15017291111
无·法 2010-05-30
  • 打赏
  • 举报
回复
关于递增的我建议楼主直接穷举吧:
\d{7}(0123|1234|2345|3456|4567|5678|6789|7890)
"|"表示或,等价的,这样写是完全可以的,而且还一目了然,效率也比上面的那个高
无·法 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dwygsliurunbin 的回复:]

号码末4位数递增
号码末4位AABB并BB中只包含0、1、7
号码末8位ABABABAB

这三个用正则表达式,怎么写啊,请高手再指点一下。
[/Quote]
号码末4位数递增 的表达式是 (0(?=1)|1(?=2)|2(?=3)|3(?=4|$)|4(?=5|$)|5(?=6|$)|6(?=7|$)|7(?=8|$)|8(?=9|$)|9(?=0|$)){4}$
号码末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
当年我和楼主一样是正则小菜
dwygsliurunbin 2010-05-28
  • 打赏
  • 举报
回复
我想越简单点,编译原理 离我太远了。我自己也不懂,怎么去做啊。
赵4老师 2010-05-28
  • 打赏
  • 举报
回复
《编译原理》中的词法分析,有限状态自动机
赵4老师 2010-05-28
  • 打赏
  • 举报
回复
在字符识别问题域中:
“正则表达式”不是万能的;
但“有限状态自动机”是万能的。
赵4老师 2010-05-28
  • 打赏
  • 举报
回复
正则表达式如果还不行就用有限状态自动机
dwygsliurunbin 2010-05-28
  • 打赏
  • 举报
回复
号码末4位数递增
号码末4位AABB并BB中只包含0、1、7
号码末8位ABABABAB

这三个用正则表达式,怎么写啊,请高手再指点一下。
threenewbee 2010-05-26
  • 打赏
  • 举报
回复
用正则表达式啊。
无·法 2010-05-26
  • 打赏
  • 举报
回复
这个用正则最好了,这里只举个第二个"号码末4位数相同并末4位号码中只包含2、3、5、6 "的例子,代码如下:
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


其他自己处理

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧