Board logo

标题: [问题求助] (已解决)VBS代码多个正则怎样合在一起? [打印本页]

作者: mick00034    时间: 2014-8-13 20:35     标题: (已解决)VBS代码多个正则怎样合在一起?

本帖最后由 mick00034 于 2014-8-16 19:00 编辑

re.Pattern = "1\d{10}"
re.Pattern = "83\d{6}"
re.Pattern = "61\d{5}"

这样分行的话只执行最后一行,我想三行都起作用,怎么写,谢谢!
作者: CrLf    时间: 2014-8-13 20:42

  1. re.Pattern = "1\d{10}|83\d{6}|61\d{5}"
复制代码

作者: mick00034    时间: 2014-8-13 23:28

回复 2# CrLf


    问一下,这个 | 符号怎么打?谢谢
作者: CrLf    时间: 2014-8-13 23:40

回复 3# mick00034


    就是回车上面那个键...
作者: mick00034    时间: 2014-8-13 23:51

本帖最后由 mick00034 于 2014-8-13 23:58 编辑

回复 4# CrLf
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. txt = fso.OpenTextFile("1.txt",1,false,-1).ReadAll
  3. Set re = New RegExp
  4. re.Pattern = "1\d{10}|83\d{6}"
  5. re.IgnoreCase = True
  6. re.Global = True
  7. For Each m in re.Execute(txt)
  8.     s = s & m & vbCrLf
  9. Next
  10. fso.OpenTextFile("2.txt",2,true).Write s
复制代码
如上述代码,可以提取手机号码和座机,只是座机前面要额外加,如027的话,有修改方法吗? 今天太晚了,希望您有时间的时候,看一下,,,,谢谢
作者: apang    时间: 2014-8-14 11:42

回复 5# mick00034


    re.Pattern = "1\d{10}|(027\-)?83\d{6}"
可以匹配027-83123456,也可以匹配83123456
作者: mick00034    时间: 2014-8-15 18:33

本帖最后由 mick00034 于 2014-8-15 18:43 编辑

回复 6# apang

没成功,不知其原因是什么?,是否可以增加重复行过滤功能?麻烦您了,谢谢!
处理前:12345678900
             83123456
             12345678900
             83123456
             83123456


处理后:12345678900
            02783123456
作者: apang    时间: 2014-8-15 18:50

回复 7# mick00034


    稍微变通一下就可以了
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. txt = fso.OpenTextFile("1.txt",1,false,-1).ReadAll
  3. Set re = New RegExp
  4. re.Pattern = "1\d{10}|83\d{6}"
  5. re.IgnoreCase = True
  6. re.Global = True
  7. For Each m in re.Execute(txt)
  8.     If Left(m, 2) = "83" Then m = "027" & m
  9.     If InStr(s, m) = 0 Then s = s & m & vbCrLf
  10. Next
  11. WScript.Echo s
复制代码

作者: mick00034    时间: 2014-8-16 09:36

本帖最后由 mick00034 于 2014-8-16 09:39 编辑

回复 8# apang

测试了一下,重复行过滤都挺成功,只是也会把无效数字行的一部分当成是号码提出来,这个有点麻烦,举个例子
处理前:
83123456
2014831777888999(此为无效数字行)
处理后:
83123456
83177788

还有一点问一下,apang老师,代码要求1.txt必须是Unicode,一般新建文本文档格式默认是ANSI格式,每次都要先改格式另存挺麻烦,要把代码针对ANSI格式的1.txt的话,代码要全部从新写,还是改动一部分代码就行?谢谢。
作者: apang    时间: 2014-8-16 13:03

回复 9# mick00034


    重新开贴,给出样本,说清要求
作者: mick00034    时间: 2014-8-16 18:58

回复 10# apang


    谢谢您,上面的代码够用了,另有其他问题,再请教您。!!!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2