2016-09-20 6 views
0

txtドキュメントの正規表現を検索するVBAマクロを作成しました。 Excelのスプレッドシートのセルに通常の筆記を入力する必要があり、マクロはWordを使用して特定のtxtドキュメントの正規表現の出現回数を数えます。これまでのところはすべて素晴らしいです。2行でのVBA正規表現のマッチング

今、私は "行く"のようなフレーズを検索しようとしています。それは2行にまたがっていない限り、うまく動作します。潜在的に、 "going"と "to"の間に改行があります。だから私は次のようなパターンを試しました:

going\nto 
going[\n]to 
going\rto 
going\sto 

「2つの行にまたがる」というパターンはありませんでした。私もtxtドキュメントに手動で入力して、それも見つけられませんでした。

私は\nのみを検索します。 "going"と "to"の間の改行が正しく検出されます。

私は間違っていますか?

+0

間にCR記号がある場合は、 "\"にする必要があります。または、\ "\ [\ r \ n] *を使用して" " –

+1

に複数行フラグを設定していますか?" –

+0

複数行フラグは改行の一致とは関係ありません。 –

答えて

1

2つの単語の間の空白を一致させる最適な方法は、\s+です。

1つ以上の空白記号に一致します。

ここには、1)CRのみ、2)CR + LF、3)スペースで区切られた3つの「進行中の」コードを印刷するサンプルVBAがあります。

Sub MatchStrWithWhitespaces() 
Dim rx As RegExp 
Dim m As MatchCollection 
Dim s As String 

s = "going" & vbCr + "to and " & "going" & vbCrLf + "to and " & "going to and " 
Set rx = New RegExp 
rx.Global = True 
rx.Pattern = "going\s+to" 
Set m = rx.Execute(s) 
If m.Count > 0 Then 
    For Each n In m 
    Debug.Print m(0) 
    Next 
End If 

End Sub 
関連する問題