0

サンプル入力 (orgtext = a[crlf]b[space]c[crlf] )

各単語 a、b、c を、元の接尾辞 crlf またはスペースを付けて単語配​​列に格納するのが好きです。現在 SPLIT を呼び出すと、サフィックスがセパレーターとして削除されますが、セパレーターも保存するのが好きです。正規表現を調整してサフィックスも返し、分割することはできますか?

Words = new Array; 
var ar: Array = orgtext.split( /\s+/  );   

for (var i:int = 0; i<ar.length;i++ )
{
Words.push(  ar[i] +"suffix here" ); 
}
4

1 に答える 1

1

通常、グローバル (g) を使用する式でexecを呼び出し続けると、 lastIndexが設定されます。

var input : String = "asd asd asd asd";
var output : Array = new Array();

var expr : RegExp = /[^\s]+(?:$|\s+)/g;
var result : Object = expr.exec(input);

while(result != null)
{
    input.push(result[0].toString());
    result = expr.exec(input);
}

期待できる試合数によっては、使った方が早いかも…

([^\s]+(?:$|\s+))+

... 1 つの exec() ですべての可能な一致をキャプチャします。一致は結果[1] ...結果[n]で利用可能になります

于 2009-02-17T08:42:46.767 に答える