我一直在寻找能够逃避正则表达式中特殊字符的VBA代码。 VB有Regex.Escape方法。 VBA中是否有等价物?
或者是否有VBA代码,所以我不必重新发明轮子?非常感谢你!
编辑:我的意思是“Microsoft VBScript Regular Expression 5.5”库没有Regex.Escape方法。那里有相同的代码吗?
答案 0 :(得分:0)
您可以使用以下代码:
Dim regExEscape As New RegExp
With regExEscape
.pattern = "[-/\\^$*+?.()|[\]{}]"
.Global = True
.MultiLine = False
End With
每当需要在用户定义的字符串中转义特殊字符时,请使用
.pattern = regExEscape.Replace(user_string, "\$&")
[-/\\^$*+?.()|[\]{}]
模式包含一个字符类,该类与需要在模式中转义为文字字符的所有可能的元字符相匹配。它与-
,/
,\
,^
,$
,*
,+
,?
, .
,(
,)
,|
,[
,]
,{
,}
,以及何时您将其替换为\$&
,然后在它们前面添加一个转义的\
($&
是对整个匹配值的反向引用)。