1

テキストファイルからデータを抽出したいので、正規表現を使用しています。たとえば、テキスト ファイルの次の行から各数値を抽出したいとします。

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

この問題を解決するのを手伝ってくれませんか?

4

1 に答える 1