我正在编写一个带有VBscript RegExp
的Word宏,需要将换行符作为模式的一部分。但即使是使用单"\n"
,"[\n]"
或VBNewLine
的模式,我也无法获得任何匹配。这是我测试的代码:
Sub Macro1()
Dim myRegExp As New RegExp
With myRegExp
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = "\n"
End With
If myRegExp.Test(ActiveDocument.Content) Then
MsgBox ("k")
End If
End Sub
在我按住回车键几秒钟并运行它的文档中,这应该打开一个消息框,但没有任何反应。但是,如果我输入任何其他内容并使用与其匹配的模式,则代码将按预期工作。
答案 0 :(得分:1)
原因是按ENTER键获得的换行符是回车,\r
。
因此,您将能够弹出的消息是使用
.Pattern = "\r"
^^
如果要匹配所有换行符,只需使用[\r\n]+
字符类(+
量词将匹配1个或多个换行符或回车符号。)