举例比如如下(实际会有十几万行).
用vbcrlf先拆分成数组我会, 然后循环用正则提取每个数组成员里刚好是8位的数字(8个连续都是数字),要怎么写呢? (首位不会是0).  多谢!13254815.zip
13266389.zip
.zip13307259
40245707.zip
的13689101.zip
.zip13689148
13066677.zip
13676976.zip
的13509642_间里的简史的.zip
13619150_高等数学习南 下册 同济·第7版.zip
的13628123_中国理蓝皮书  2014.zip
《饰计实例教程》_13688619.zip自己写了个不对:太菜了. Private Sub Command84_Click()
Dim ss As String
ss = Clipboard.GetText
Text15 = quss(ss)
End Sub
Function quss(oo As String)
  Set regex3 = CreateObject("VBScript.RegExp")
  regex3.IgnoreCase = True
  regex3.Global = True
  regex3.MultiLine = False
  regex3.Pattern = "^[1-9]\d{7}$"
  Set Matches = regex3.Execute(oo)
  For Each Match In Matches
      quss = quss & Match.SubMatches(0)
  Next
End Function或者emeditor之类有没办法用正则之类把这些数字直接提取出来呢?

解决方案 »

  1.   

    用这个就行:[1-9]\d{7}如果要严格点用这个:(?!:\d)[1-9]\d{7}(?!:\d)
    表示7位数数字前后都不为数字
      

  2.   

    楼上大侠的正则对. 但是我不会写代码, 不知道怎么提取. 搜了个js代码, 可以用Emeditor实现, 但是每次要输入正则, 我想它直接执行, 不知怎么改? 我把原代码的var _regex=prompt("本程序用来提取正则表达式匹配的字符串,请输入正则表达式","[1-9]\d{7}");改写成var _regex=[1-9]\d{7};  它报错说"无效字符"
    有会js的大侠能帮指点下吗?  非常感谢!/**
    * 根据输入的正则表达式,提取与之匹配的字符串,并新建一个文档显示所有匹配的字符串,
    * 显示时每个匹配项占一行
    *
    * @author      Guapo
    * @version     v1.0
    */
       getText();
    function getText()
    {
    // var _regex=prompt("本程序用来提取正则表达式匹配的字符串,请输入正则表达式","[1-9]\d{7}");var _regex=[1-9]\d{7};
    var regex=new RegExp(_regex,"gim");
    document.selection.SelectAll();
    var textInCurrentDocument=document.selection.Text;
    var matchResultArray=textInCurrentDocument.match(regex);
    if(matchResultArray)
    {
       var len=matchResultArray.length;
       editor.NewFile();
       for(var i=0;i<len;i++)
       {
        document.writeln(matchResultArray[i]);
       }
    }
    else
    {
       alert("没有找到匹配的字符串");
    }
    }
      

  3.   

    '此代码由“正则测试工具  v1.1.43”自动生成,请直接调用TestReg过程
    Private Sub TestReg()
        Dim strData As String
        Dim reg As Object
        Dim matchs As Object, i As Integer, j As Integer
        strData = "13254815.zip"  &  vbCrLf  & _
                  "13266389.zip"  &  vbCrLf  & _
                  ".zip13307259"  &  vbCrLf  & _
                  "40245707.zip"  &  vbCrLf  & _
                  "的13689101.zip"  &  vbCrLf  & _
                  ".zip13689148"  &  vbCrLf  & _
                  "13066677.zip"  &  vbCrLf  & _
                  "13676976.zip"  &  vbCrLf  & _
                  "的13509642_间里的简史的.zip"  &  vbCrLf  & _
                  "13619150_高等数学习南 下册 同济·第7版.zip"  &  vbCrLf  & _
                  "的13628123_中国理蓝皮书  2014.zip"  &  vbCrLf  & _
                  "《饰计实例教程》_13688619.zip"
        Set reg = CreateObject("vbscript.regExp")
        reg.Global = True
        reg.IgnoreCase = True
        reg.MultiLine = True
        reg.Pattern = "(?!:\d)[1-9]\d{7}(?!:\d)"
        Set matchs = reg.Execute(strData)
        For i = 0 To matchs.Count - 1
            Debug.Print i + 1 & "." & matchs(i)
            For j = 0 To matchs(i).SubMatches.Count - 1
               Debug.Print "(" & j + 1 & ")." & matchs(i).SubMatches(j) & " ";
            Next
            If matchs(i).SubMatches.Count > 0 Then Debug.Print
        Next
    End Sub
    推荐用这个工具,在窗体空白处快速3击即可生成vb6代码,复制即可运行。介绍地址:
    http://blog.csdn.net/sysdzw/article/details/6141844