ここで肯定的なlookbehindは必要ありません。ここでの唯一の目的は、必要なマッチの左手のコンテキストを定義することであり、重複するマッチはありません。このように、あなたは安全に代わりかかるパターンを使用することができ、後でグループ1
利用
の内容をつかむために、
キャプチャ括弧で、パターンの残りの部分、または興味のある部分を囲みます
.Pattern = "^\[B{5}\]\s*([^\r\n]*)"
.
が試合から\r
を除外する[^\r\n]
に置き換え優れている、と{5}
は5 B
秒を書くためのより便利な方法です。
全デモ:
Sub DemoFn2()
Dim re As RegExp
Dim s As String
Dim colMatch As MatchCollection, objMatch As Match
s = "[AAAAA]xyzxyzxyz" & vbCrLf & "[AAAAA] abcdefghi" & vbCrLf & "[AAAAA] whatever" & vbCrLf & "[BBBBB] aaaaaaaa" & vbCrLf & "[BBBBB] cccccccc" & vbCrLf & "[BBBBB] dddddddd" & vbCrLf & "[CCCCC] ffffffff" & vbCrLf & "[CCCCC] eeeeeeee"
Set re = New RegExp
With re
.Pattern = "^\[B{5}\]\s*([^\r\n]*)"
.Global = True ' Same as /g at the online tester
.MultiLine = True ' Same as /m at regex101.com
End With
Set colMatch = re.Execute(s)
For Each objMatch In colMatch
Debug.Print objMatch.SubMatches.Item(0)
Next
End Sub