次のコードがあります。
Dim results(1) As String
Dim RE As Object, REMatches As Object
Set RE = CreateObject("vbscript.regexp")
With RE
.MultiLine = False
.Global = True
.IgnoreCase = True
.Pattern = "(.*?)(\[(.*)\])?"
End With
Set REMatches = RE.Execute(str)
results(0) = REMatches(0).submatches(0)
results(1) = REMatches(0).submatches(2)
基本的に、文字列「Test」を渡すと、最初の要素が Test で 2 番目の要素が空白の配列が返されます。
文字列「Test [bar]」を渡す場合、最初の要素は「Test」、2 番目の要素は「bar」にする必要があります。
正規表現に問題がないようです。私は何を間違っていますか?