如何在正则表达式模式中包含变量

use*_*245 4 regex vba

我正在开发一个 vba 宏,它使用正则表达式来搜索另一个字符串中的字符串模式。

正则表达式模式包含一个变化的字符串(下面代码中的 APR24)。我需要知道如何在模式中包含变量。有人可以帮忙吗?

我的代码如下

Public Function Regexsrch(ByVal str2bsrchd As String, ByVal str2srch As String) As Boolean
Dim Regex As New VBScript_RegExp_55.RegExp
Dim matches, s
Regex.Pattern = "(\.|\s)APR24(,|\s|\()"
Regex.IgnoreCase = True
    If Regex.Test(str2bsrchd) Then
         Regexsrch = True
Else
        Regexsrch = False
End If
End Function
Run Code Online (Sandbox Code Playgroud)

Eri*_*dek 5

那么 str2srch 是“APR24”还是某种变体?如果是这种情况,您只需使用串联来构建模式字符串。

Public Function Regexsrch(ByVal str2bsrchd As String, ByVal str2srch As String) As Boolean
Dim Regex As New VBScript_RegExp_55.RegExp
Dim matches, s
Regex.Pattern = "(\.|\s)" + str2srch + "(,|\s|\()"
Regex.IgnoreCase = True
    If Regex.Test(str2bsrchd) Then
         Regexsrch = True
Else
        Regexsrch = False
End If
End Function
Run Code Online (Sandbox Code Playgroud)

  • 可以通过使用字符类来改进正则表达式,例如 `Regex.Pattern = "[.\s]" + str2srch + "[,\s(]"` (2认同)