0

AS3 でテキスト パーサーを作成しようとしています。このパーサーは [角かっこ] 内の単語を検索し、それらを別の単語セットに置き換えます。ここまでで、実際の RegEx スタイルを作成することができましたが、2 つの単語 (1 つは括弧内、もう 1 つは括弧なし) を吐き出し続けています。同様に、文全体が解析され、resulter が null になるまで、継続的に実行することはできません。

public function parseWords(words):String {
        var replacer:String = words;
        var finder:RegExp =  new RegExp("\\[([a-zA-Z0-9]+)\\]");
        var resulter:Object = finder.exec(words);
        trace(resulter[0] == "[Rabbit]");
        //trace (replacer);
        trace (resulter);
        return replacer;
    }

トレース結果; 真 [うさぎ],うさぎ

何か案は?

4

1 に答える 1

1

これはあなたがやろうとしていることですか?:

関数:

function replaceWords(subject:String, replacementSet:Array):String
{
    var out:String = subject;
    var matches:Array = subject.match(/\[\w+\]/g);

    for(var i:int = 0; i < matches.length; i++)
    {
        out = out.replace(matches[i], replacementSet[i]);
    }

    return out;
}

そしてテスト:

var test:String = "This is [some] text [with] search items.";

trace( replaceWords(test, ["updated", "without"]) );
// This is updated text without search items.
于 2013-07-02T03:11:21.830 に答える