- ベストアンサー
文字列の処理について教えてください。
いつもお世話になってます。 知恵を貸してください。 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関数などは使えません・・・
- みんなの回答 (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
その他の回答 (2)
- yyr446
- ベストアンサー率65% (870/1330)
instr()関数で、'Func_Rpt('の位置を調べて、mid()で取り出すのではだめですか? ゆらぎが大きいなら正規表現を使えばよいかと VBで正規表現 http://codezine.jp/article/detail/1655
- fujillin
- ベストアンサー率61% (1594/2576)
iが取得したい文字として、残りの部分は固定されているのなら Func_Rpt(i)、 Start:gInt_Cur_No=i 固定文字部分を InStr()などで検索して、該当部分の文字を得るか、iが1文字以上(2桁)とかで文字数不定な場合などは、正規表現を利用して抽出するのが簡単かと。
お礼
即レスありがとうございます。 ばっちりできました!! ありがとうございます。