今、VB6にて正規表現の勉強をしているのですが、
目的の動作をしないので、お力を貸して下さい。
以下、ソースです。
'-----------------------------------------
Static objRegExp As RegExp
Dim MC As MatchCollection
Dim I As Match
Buffer = "$今日$ $僕は$ $正規表現を$ $勉強します$"
If (objRegExp Is Nothing) Then Set objRegExp = CreateObject("VBScript.RegExp")
With objRegExp
.Pattern = "$[^ ]{1,}$"
.MultiLine = False
Set MC = .Execute(Buffer)
End With
For Each I In MC
Debug.Print I.Value
Next I
'-----------------------------------------
.Pattern = "$[^ ]{1,}$"
の所、$で始まって、スペース以外の文字列を無限に許可し、
$で終わるパターンを書いています。
Debug.Print I.Value
で返ってくるのは、
$今日$
という文字だけなのですが、これを
$今日$
$僕は$
$正規表現を$
$勉強します$
と四つ列挙するには、どこが間違っているのか
教えて頂けたらと思い、書き込みました。
よろしくお願いします。
適当ですが。
Private Sub Form_Load()
Const s = "$今日$ $僕は$ $正規表現を$ $勉強します$"
Dim x As RegExp
Dim v As Match
Set x = New RegExp
x.Pattern = "[$][^ ]*[$]"
x.Global = True
For Each v In x.Execute(s)
Debug.Print v.Value
Next
End Sub
ガッ様、レスありがとうございます。
教えて頂いたソースで無事に四つ取り出せました。
X.Global = True をしていないからでした。
.Pattern = "$[^ ]{1,}$" も変な設定をしていたみたいです。
本当にありがとうございました。
ツイート | ![]() |