在VBA中组合正则表达式和用户输入

时间:2016-07-01 20:34:37

标签: regex vba powerpoint user-input powerpoint-vba

我试图允许用户搜索字符串数组。我希望我的搜索模式是:

  • 任意数量的空格
  • 后跟用户输入
  • 跟随
  • 之后的任何文字

以下表达式应匹配:

  1. " AP"到" apple"
  2. "喜"到"嗨"
  3. 在PowerPoint VBA中,将用户输入与asterix组合时出现语法错误,如:

    Sub RegEx_Tester()
    
    
    Set objRegExp_1 = CreateObject("vbscript.regexp")
    
    objRegExp_1.Global = True
    objRegExp_1.IgnoreCase = True
    
    Dim test As String
        test = InputBox("Give a Section or Presentation")
        strToSearch = test
        objRegExp_1.Pattern = \s*[test]*
    
    
        Set regExp_Matches = objRegExp_1.Execute(strToSearch)
    
        If regExp_Matches.Count = 1 Then
        'Add it to another array. Unimportant for this question.
        End If
    
    End Sub
    

    我的正则表达式模式突出显示为红色,我收到语法错误。我的问题是:

    是否无法组合变量和正则表达式?或者我只是弄乱了语法?

1 个答案:

答案 0 :(得分:0)

您需要将字符串放在引号中:

"\s*[test]*"

但这也不太正确。这将匹配字母t,e或s。 您可以查看删除前导和尾随空格的TRIM( text )。我包含的链接看起来只适用于Word和Excel,但Powerpoint可能有类似的东西。