51Testing软件测试论坛

标题: 关于一个正则表达式的困惑 [打印本页]

作者: 026300    时间: 2012-5-2 17:33
标题: 关于一个正则表达式的困惑
本帖最后由 026300 于 2012-5-2 17:36 编辑

我想让qtp自动打开owcsheet25852.xml这样的文件,其中的25852是随机生成的,想用正则表达式,代码是:
Set regEx = New RegExp
regEx.Pattern ="[0-9][0-9][0-9][0-9][0-9]"
excel01.Workbooks.Open "C:\Documents and Settings\shi\Local Settings\Temp\owcsheet" & "regEx.Pattern" &  ".xml"

但是运行的结果提示找不到owcsheet"[0-9][0-9][0-9][0-9][0-9]".xml这样的文件,看意思是写法不对,这个地方如何写匹配规则呢,多谢
作者: 026300    时间: 2012-5-3 08:50

作者: snakeshiy    时间: 2012-5-3 10:06
正则表达式没有写错,应该是Workbooks.Open方法不支持正则的,需要一个具体的文件名
作者: 026300    时间: 2012-5-3 10:35
正则表达式没有写错,应该是Workbooks.Open方法不支持正则的,需要一个具体的文件名
snakeshiy 发表于 2012-5-3 10:06


那还有什么办法吗?
作者: hsjzfling    时间: 2012-5-3 11:56
回复 4# 026300


    正则不是随便哪里都可以直接用的……先把逻辑理顺,目的是找到满足条件的文件,那么就先去获取指定文件夹下的所有文件,然后遍历文件名,找出满足条件的文件,这里呢如果喜欢用正则就可以用上了。
作者: 026300    时间: 2012-5-3 12:37
回复  026300


    正则不是随便哪里都可以直接用的……先把逻辑理顺,目的是找到满足条件的文件,那么 ...
hsjzfling 发表于 2012-5-3 11:56


多谢,我先试试
作者: 026300    时间: 2012-5-3 14:55
网上找了这么一个函数:
Function ShowFolderList(folderspec)
   Dim fso, f, f1, fc, s
   Set fso = CreateObject("scrīpting.FileSystemObject")
   Set f = fso.GetFolder(folderspec)
   Set fc = f.Files
   For Each f1 in fc
      s = s & f1.name
      s = s & "<BR>"
   Next
   ShowFolderList = s
End Function

但运行时报错了:
ActiveX 部件不能创建对象: 'scrīpting.FileSystemObject'
Line (13): "Set fso = CreateObject("scrīpting.FileSystemObject")".

我的机器是xp sp3
作者: shanfeng1419    时间: 2012-5-7 11:11
帮顶
作者: yubing4828    时间: 2012-5-7 11:18
有个小疑问,那个系统生成的数字一定是五位数吗,如果生成的不是五位数,会不会结果就提示找不到owcsheet"[0-9][0-9][0-9][0-9][0-9]".xml文件的问题呢?
作者: 026300    时间: 2012-5-7 12:17
有个小疑问,那个系统生成的数字一定是五位数吗,如果生成的不是五位数,会不会结果就提示找不到owcsheet"[ ...
yubing4828 发表于 2012-5-7 11:18


嗯,符合这个规律的才可以用。

顺便说下,这个问题参考hsjzfling的建议已经解决了,谢谢大家顶贴
作者: user603    时间: 2013-3-12 09:25
回复 7# 026300


     Set fso = CreateObject("scrīpting.FileSystemObject")
有个字母写错了。“scrīpting”中的第一个“i”




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2