vba正则表达式:点匹配换行符

wfs*_*fsp 6 regex vba

我想匹配(在这个片段中)所有内容,但不包括我认为的换行符.会做.请问有人能说清楚我错过的东西.

Public Sub regexp()

Dim oRegExp As regexp
Dim oMatches As MatchCollection
Dim oMatch As Match
Dim sString As String

sString = _
    "one" & vbNewLine & _
    "two" & vbNewLine

Set oRegExp = New regexp
With oRegExp
    .Global = True
    .Pattern = ".+"
    Set oMatches = .Execute(sString)
    For Each oMatch In oMatches
        Debug.Print "*" & oMatch.Value & "*"
    Next oMatch
End With

End Sub
Run Code Online (Sandbox Code Playgroud)

输出是

*one
*
*two
*
Run Code Online (Sandbox Code Playgroud)

预期产出

*one*
*two*
Run Code Online (Sandbox Code Playgroud)

如何避免输出中的换行符?谢谢.

egg*_*yal 8

如果使用[^\n]代替.,它将匹配新行字符之外的任何字符.

  • 试试`[^ \n\r]`而不是 - [文档](http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.constants.vbnewline.aspx)建议`vbNewLine`只是一个新的行字符,但我有一些模糊的回忆它实际上是系统特定的新行字符序列,其中包括Windows上的回车符. (7认同)