我在VBA中使用包含以下字符的正则表达式有点挣扎。我想要逗号,破折号和字母数字字符。
我已经找到了字母数字字符,但破折号和逗号似乎给了我麻烦。
这是我创建的功能
Private Function StripSpecialCharacters(ByVal strField As String) As String
Dim ObjRegex As Object
Set ObjRegex = CreateObject("vbscript.regexp")
With ObjRegex
.Global = True
.Pattern = "[^a-zA-Z0-9]+" 'regular expression needs to contain commas and dashes
StripSpecialCharacters = .Replace(Replace(strField, "-", Chr(32)), vbNullString)
End With
End Function
任何人都可以帮助我吗?
更新 好吧,我一直在想一点倒退。对于那个很抱歉。
这是我从strField获得的内容
Consult Hond's + Huid & Darm-Allergieëndieet Mix3.5 * 4 kg 8713112002917
我需要能够从这个字符串中删除所有特殊的奇怪字符,例如+,Ã,* ,. ,',&等等。某些特殊字符需要用短划线替换。这些是以下内容;空格,+,/,&。 起初我想我要替换特殊字符,然后使用我的正则表达式。但是,任何改进都是值得欢迎的。所以拿我刚给的字符串。最终结果应该是这样的。
consult-honds-huid-darm-allergiedieet-mix3,5x4kg8713112002917
(正如您所见,点已被逗号替换)。
答案 0 :(得分:1)
请按照以下步骤操作:
输入Consult Hond's + Huid & Darm-Allergieëndieet Mix3.5 * 4 kg 8713112002917
--------------------------|-------------------------
| Find | Replace
--------------------------|-------------------------
1 | [\s\x7f-\xff'+/&]+ | nothing
2 | [.]+ | ,
3 | [*]+ | x
4 | (?<=[a-z])(?=[A-Z]) | -
--------------------------|-------------------------
5 Conveert string to lower case
输出consult-honds-huid-darm-allergiedieet-mix3,5x4kg8713112002917