谁能帮我写RegExp删除除数字和连字符(减号或"-")之间的所有字符。
字符串如下: C:\Documents and Settings\User\Desktop\New Folder 2\New\Folder\1586-10 bougsfiugUYG(jygf) hoihd.xls
它需要是:
1586-10
只有这样。
-10之前的位数未指定(可以是4-6);-10本身可以是任意两位数...
让它变得更容易。下面是我找到的函数:
Public Function strClean (strtoclean)
Dim objRegExp, outputStr
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "((?![a-zA-Z0-9]).)+"
outputStr = objRegExp.Replace(strtoclean, "-")
objRegExp.Pattern = "\-+"
outputStr = objRegExp.Replace(outputStr, "-")
strClean = outputStr
End Function该模式目前使用文件名: C-Documents-and-Settings-Lena-Desktop-New-Folder-2-New-Folder-2-1588-11-sfiuhsgu-(fgRG75476)-skghgsiu.xls
发布于 2010-11-07 02:34:45
\d?\d?\d\d\d\d-\d\d
\d是一个数字
?表示前一个字符的零个或一个
所以\d?意味着它可以是0或1位数。
编辑:在评论后添加了如何使用它的示例
Dim myRegExp
Set myRegExp = New RegExp
myRegExp.Pattern = "\d?\d?\d\d\d\d-\d\d"
Dim test
test = "C:\Documents and Settings\User\Desktop\New Folder 2\New\Folder\1586-10 bougsfiugUYG(jygf) hoihd.xls"
Set myMatches = myRegExp.Execute(Right(test, InStrRev(test, "\")))
WScript.Echo myMatches(0)Edit2:用于调用代码的代码片段
Dim test
test = "C:\Documents and Settings\User\Desktop\New Folder 2\New\Folder\1586-10 bougsfiugUYG(jygf) hoihd.xls"
test = StrClean(test)
WScript.Echo testhttps://stackoverflow.com/questions/4114457
复制相似问题