首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除除数字和连字符("-")之外的所有字符的VBScript正则表达式

删除除数字和连字符("-")之外的所有字符的VBScript正则表达式
EN

Stack Overflow用户
提问于 2010-11-07 02:21:35
回答 1查看 4.7K关注 0票数 0

谁能帮我写RegExp删除除数字和连字符(减号或"-")之间的所有字符。

字符串如下: C:\Documents and Settings\User\Desktop\New Folder 2\New\Folder\1586-10 bougsfiugUYG(jygf) hoihd.xls

它需要是:

1586-10

只有这样。

-10之前的位数未指定(可以是4-6);-10本身可以是任意两位数...

让它变得更容易。下面是我找到的函数:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-07 02:34:45

\d?\d?\d\d\d\d-\d\d

\d是一个数字

?表示前一个字符的零个或一个

所以\d?意味着它可以是0或1位数。

编辑:在评论后添加了如何使用它的示例

代码语言:javascript
复制
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:用于调用代码的代码片段

代码语言:javascript
复制
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  test
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4114457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档