包含逗号,短划线和字母数字字符的VBA正则表达式

时间:2016-08-04 13:52:28

标签: regex vba excel-vba regex-lookarounds excel

我在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(正如您所见,点已被逗号替换)。

1 个答案:

答案 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