2012-04-24 23 views
5

私は、この考え方に合わせて、私が考えていた改行を含めずにすべてをマッチさせたいと思います。するだろう。誰かが私が紛失しているものについて光を当てることができますか。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 

出力は

*one 
* 
*two 
* 

の予想される出力

私は出力に改行を回避することができますどのように
*one* 
*two* 

のですか?ありがとう。

答えて

7

.の代わりに[^\n]を使用すると、の改行文字を除く)と一致します。

+0

悲しいことに、それは私に同じ出力を与えます。 – wfsp

+5

代わりに '[^ \ n \ r]'を試してください。 - [documentation](http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.constants.vbnewline.aspx)は、 'vbNewLine'が新しい行の文字だけですが、私はいくつかの曖昧な想起を持っていますが、それは実際にはシステム固有の改行文字シーケンスです。これはWindowsでの復帰を含みます。 – eggyal

+0

それは、大変ありがとうございました。実際のケースはテキストファイルであり、あなたのソリューションもそれでうまくいきます。もう一度、ありがとう。 – wfsp

関連する問題