2009-04-02 4 views
1

複数の文字コードを含む文字列があり、そのコードに従って解析したいと思います。私は、それがコードの一部を構成するかどうかを判断するために、複数の文字を見えるようにする方法がわかりません。VBAをトークンに変換する

私の文字列は次のようになります。

BBCTEEBOBBB

、私はこれらのインスタンスを解析したい:

E BB CT BOB

だから、結果は(出力する必要がありますまたは配列)は、次のようになります。

BB CT E E BOB BB

+0

VBAとは、どの特定の製品とバージョンをターゲットにしていますか? (VB6、Access 2007、Excel 2003など)? – JohnFx

+0

Excel 2007特に... – Caveatrob

+0

一部のコードは他のコードのサブセットになる可能性はありますか?つまり、BコードとBBコードがありますか? また、sourc文字列に指定されたコード以外のものが含まれている可能性はありますか? – JohnFx

答えて

5

私は正規表現を使用します。 In ツール|参考資料には、PC上で入手できるMicrosoft VBScript正規表現ライブラリの最高バージョン(5.5版)が追加されています。その後、次のようなコードを使用することができます。

Sub main() 
    Dim x, m 
    Set x = myparser("BBCTEEBOBBB") 
    For Each m In x 
    Debug.Print m.Value 
    Next 
End Sub 

Function myparser(string_to_parse) 
    Dim splitter As New RegExp 
    splitter.Pattern = "E|BB|CT|BOB" 
    splitter.Global = True 
    Set myparser = splitter.Execute(string_to_parse) 
End Function 

myparser関数はmainサブルーチンのように見学することができるMatchCollectionオブジェクトを生成します。出力は、入力文字列で見つかったすべての一致のリストです。これを簡単に変換して、配列や空白で区切られた文字列を生成することができます。

+0

ニート。私は組み込みのregexpライブラリを知らなかった。 – Lunatik

+1

Freakin 'awesome!私はこの方法を使って、女性のローラーダービー試合のスプレッドシートにペナルティを追加するショートカットを使用しています。あなたがランカスターにいるなら、無料のチケットがあります。 – Caveatrob

関連する問題