0

文字列内のすべての単語をAS3の配列に分割しようとしています。もちろん、明白な答えは単にこれを行うことです:

str.split(/\s/);

ここでの問題は、分割が改行で発生したのかスペースで発生したのかを判別できる必要があることです。文字列の単語をドラッグ可能なボックスに入れようとしていますが、改行の後の単語を新しい行に配置したいと思います。

これについて行くための最良の方法はありますか?明らかに、上記の分割メソッドは、私が知る必要があることを教えてくれる重要な改行文字を取り除きます。whileループでregex.execを使用する必要がありますか、それとも分割を使用して必要な文字を保持する方法はありますか?

4

2 に答える 2

1

文字列の例:

     This is an example string  
     with spaces as well as newlines 
     and needs a regex

1 /改行で文字列を分割し、array#1を取得します。

array#1 = ["これは文字列の例です"、 "スペースと改行が含まれています"、"正規表現が必要です"]

2 /配列#1の各要素について、現在の正規表現に基づいて分割します。これにより、改行が既に処理されているため、スペースでのみ文字列が分割されます。この2次元配列は配列#2です。

   array#2  = [ 
                ["This","is","an","example","string"] ,
                ["with","spaces","as","well","as","newlines"],
                ["and","needs","a","regex"]
              ]

3 /必要に応じて配列#2の要素を処理します。

于 2012-10-23T05:17:19.073 に答える
1

最初に改行で文字列を分割します

var lines:Array = str.split("\n");

今、あなたはあなたの行をループし、これらのそれぞれを分割して単語を分離することができます

for(var i:int = 0; i < lines.length; i++){
    var words = str[i].split(" ");
    for(var j:int = 0; j < words.length; j++){
        trace("word", words[i]);
    }
    trace("newline");
}
于 2012-10-23T12:51:40.313 に答える