【发布时间】:2018-01-10 15:01:32
【问题描述】:
请您检查我的代码,看看为什么它没有给我想要的东西。我认为这是因为模式,但我不太确定。
Function CleanStr(strIn As String) As String
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Pattern = "\([^)]*\)"
.Global = True
CleanStr = .Replace(strIn, vbNullString)
End With
End Function
我希望我的代码做的是清除括号内的字符串。所以给定像“values(delete)”这样的东西,我希望它只变成“values()”。但是我的代码所做的也是删除括号,从而使其成为“值”。
有人知道为什么会这样吗?
感谢您的帮助。
【问题讨论】:
-
只需替换为
()(而不是vbNullString)。 -
正如 Wiktor 所说,只需替换为 ():
CleanStr = .Replace(strIn, "()")或使用 Gurman 的模式。