• ベストアンサー

文字列の処理について教えてください。

いつもお世話になってます。 知恵を貸してください。 2009/07/13 11:00:51,【その他】,POS01 (Rev 1.05),Func_Rpt(1) Start:gInt_Cur_No=2 こういった文字列があります。(ファイルから読み込んだときの1行) この文字列から Func_Rpt(1)  → 1 Start:gInt_Cur_No=2 → 2 をそれぞれ取得したいのですが、どうすれば簡単に取得できますか? 前後の文字が左右するのでmid関数などは使えません・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.3

正規表現を使った例 Sub main() Dim Regex As RegExp Set Regex = New RegExp Dim results As MatchCollection Dim line_data As String line_data = "2009/07/13 11:00:51,【その他】,POS01 (Rev 1.05),Func_Rpt(1) Start:gInt_Cur_No=2" Regex.Pattern = "Func_Rpt\(([0-9]+)\)" Set results = Regex.Execute(line_data) If results.Count > 0 Then MsgBox "Func_Rptは" & results.Item(0).SubMatches(0) & "です" End If Regex.Pattern = "Start:gInt_Cur_No=([0-9]+)" Set results = Regex.Execute(line_data) If results.Count > 0 Then MsgBox "gInt_Cur_Noは" & results.Item(0).SubMatches(0) & "です" End If Set results = Nothing Set Regex = Nothing End Sub

takosin_co
質問者

お礼

即レスありがとうございます。 ばっちりできました!! ありがとうございます。

その他の回答 (2)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

instr()関数で、'Func_Rpt('の位置を調べて、mid()で取り出すのではだめですか? ゆらぎが大きいなら正規表現を使えばよいかと VBで正規表現 http://codezine.jp/article/detail/1655

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

iが取得したい文字として、残りの部分は固定されているのなら  Func_Rpt(i)、 Start:gInt_Cur_No=i 固定文字部分を InStr()などで検索して、該当部分の文字を得るか、iが1文字以上(2桁)とかで文字数不定な場合などは、正規表現を利用して抽出するのが簡単かと。

関連するQ&A

専門家に質問してみよう