到目前为止,我一直在手动添加字符来替换破坏我的代码。我想要更加积极主动,所以我发现这个函数应该替换除了有效字符之外的所有内容。 我的第一个障碍是它似乎不起作用。下面的代码是我的完整测试文件,MsgBox显示为空白。
我的第二个问题是关于表现。此函数处理非常非常大的字符串。这种方法会慢得多吗?有人推荐别的吗?
Function CleanUp (input)
Dim objRegExp, outputStr
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "((?![a-zA-Z0-9]).)+"
outputStr = objRegExp.Replace(input, "-")
objRegExp.Pattern = "\-+"
outputStr = objRegExp.Replace(outputStr, "-")
CleanUp = outputStr
End Function
MsgBox (CleanUp("Test"))
编辑:我很愚蠢,只是看到了我做的变量混音,导致它什么也没有返回。它现在正在运作。仍会接受性能问题或更好建议的输入。
答案 0 :(得分:2)
它不知道您的示例的预期结果是什么,但也许您可以尝试使用该模式:
objRegExp.Pattern =“[^ a-zA-Z0-9]”
希望它有效
答案 1 :(得分:2)
您可以进一步简化它。
objRegExp.Pattern =“[^ \ w +]”