我正在研究一个宏,以自动将电子表格数据重新格式化为可上传到广告服务器的导入表。
我正在导入具有严格命名约定的展示位置,仅允许以下字符:
a-z A-Z 0-9 _ + / \ - ( ) . : « » ~
我想查看一个代表展示位置名称的字符串,并替换上面找不到的任何字符。
因此,如果我的展示位置名称是:
apples?orange's*pears(300x250)
我希望结果看起来像这样
applesorangespears(300x250)
这是我目前拥有的:
'test string
placement_name = "test*123?test'456(300x250)"
'Allowed characters
regex_pattern = "a-zA-Z0-9_+/\\-().:«»~"
If regex_pattern <> "" Then
With regex
.Global = True
.Pattern = regex_pattern
End With
'Execute RegEx pattern on placement name
Set regex_matches = regex.Execute(placement_name)
If regex_matches.count > 0 Then
For i = 0 To regex_matches.count - 1
placement_name = regex_matches.Item(i).Value
Next i
End If
End If
但是当我运行它时,它将返回完整的展示位置名称,并且不会删除在正则表达式中找不到的字符。
有人可以提供任何指导来帮助我吗?我可以使用伪代码甚至口头建议。
谢谢!
答案 0 :(得分:3)
Dim RegEx As Object
sStr = "apples?orange's*pears(300x250)"
Set RegEx = CreateObject("VBScript.RegExp")
RegEx.Global = True
RegEx.Pattern = "[^a-zA-Z0-9-\\().:«»~-]"
Debug.Print RegEx.replace(sStr, "")
您可以更改自己的RegEx模式,以防万一我错过了一些东西。