テキストファイルからデータを抽出したいので、正規表現を使用しています。たとえば、テキスト ファイルの次の行から各数値を抽出したいとします。
ST/X 0.0000000000000000 6.4000000000000004 12.8000000000000010 19.1999999999999990 25.6000000000000010 32.0000000000000000
最初にこの正規表現を使用して、ST/Xを検索します。
regstx.Pattern = "(ST/X)\s*(-?[\d]*(\.)?[\d]*\s*)+"
次に、このコード ブロックで各番号を見つけます。
If matchstx.Count <> 0 And (swknnf = True Or swknl = True) Then
Set matchxnum = regxnum.Execute(Mid(Trim(matchstx.Item(0)), 5))
End If
regxnum を次のように設定します。
regxnum.Pattern = "-?\d{1,}\.{0,1}\d{0,}"
STX の行が 1 つしかない場合でも、次のように他の行の後に STX の行が多数ある場合は正常に動作します。
ST/X 0.0000000000000000 6.4000000000000004 12.8000000000000010 19.1999999999999990 25.6000000000000010 32.0000000000000000
ST/X 38.3999999999999990 44.7999999999999970 51.2000000000000030 57.6000000000000010 64.0000000000000000 70.4000000000000060
私のアイデアは機能せず、上記のコードは各 STX を書き換えますが、何とかしてすべての STX を matchxnum に入れたい:
If matchstx.Count <> 0 And (swknnf = True Or swknl = True) Then
Set matchxnum = matchxnum + regxnum.Execute(Mid(Trim(matchstx.Item(0)), 5))
End If
ところで、このアイデアを VBA で実装するにはどうすればよいですか。ところで、このように matchxnum を定義し、アクセスで VBA を使用しています。
DIM matchxnum As MatchCollection
この問題を解決するのを手伝ってくれませんか?