использование RegExp для разделения строки, но сохранение пробелов (пробел или crlf) для элементов - PullRequest
0 голосов
/ 17 февраля 2009

пример ввода (orgtext = a [crlf] b [пробел] 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" ); 
}

1 Ответ

1 голос
/ 17 февраля 2009

Как правило, вы будете продолжать вызывать exec с выражением, которое использует глобальный (g), так что будет установлен 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+))+

... который захватит все возможные совпадения в одном exec (). Матчи будут доступны в результате [1] ... результат [n]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...