[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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

这样分行的话只执行最后一行,我想三行都起作用,怎么写,谢谢!

回复 10# apang


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

TOP

回复 9# mick00034


    重新开贴,给出样本,说清要求

TOP

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

回复 8# apang

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

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

TOP

回复 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
复制代码
1

评分人数

TOP

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

回复 6# apang

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


处理后:12345678900
            02783123456

TOP

回复 5# mick00034


    re.Pattern = "1\d{10}|(027\-)?83\d{6}"
可以匹配027-83123456,也可以匹配83123456

TOP

本帖最后由 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的话,有修改方法吗? 今天太晚了,希望您有时间的时候,看一下,,,,谢谢

TOP

回复 3# mick00034


    就是回车上面那个键...

TOP

回复 2# CrLf


    问一下,这个 | 符号怎么打?谢谢

TOP

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

评分人数

TOP

返回列表