RegExp与VBA

时间:2016-01-04 18:59:26

标签: regex vba vbscript ms-office

我正在编写一个带有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

在我按住回车键几秒钟并运行它的文档中,这应该打开一个消息框,但没有任何反应。但是,如果我输入任何其他内容并使用与其匹配的模式,则代码将按预期工作。

1 个答案:

答案 0 :(得分:1)

原因是按ENTER键获得的换行符是回车\r

因此,您将能够弹出的消息是使用

.Pattern = "\r"
            ^^

如果要匹配所有换行符,只需使用[\r\n]+字符类(+量词将匹配1个或多个换行符或回车符号。)