Разбор строк с помощью RegExp в Actionscript - PullRequest
0 голосов
/ 04 марта 2010

У меня есть строка, похожая на путь, но я пробовал некоторые шаблоны регулярных выражений, которые должны анализировать пути, и они не совсем работают.

Вот строка

f|MyApparel/Templates/Events/

Мне нужны «части имени» между слешами.

Я попытался (\w+), но массив вернулся [0] = "f" и [1] = "f".

Я протестировал шаблон на http://www.gskinner.com/RegExr/ и, похоже, он работает правильно.

Вот код AS:

var pattern : RegExp = /(\w+)/g;
var hierarchy : Array = pattern.exec(params.category_id);
params.name = hierarchy.pop() as String;

Ответы [ 2 ]

2 голосов
/ 04 марта 2010

pattern.exec() работает как в JavaScript.Он сбрасывает свойство lastIndex каждый раз, когда находит совпадение с глобальным регулярным выражением, и в следующий раз, когда вы запускаете его, оно начинается оттуда.следующее совпадение в строке.Следовательно, вы должны запустить его в цикле, пока он не вернет null:

var myPattern:RegExp = /(\w+)/g;  
var str:String = "f|MyApparel/Templates/Events/";

var result:Object = myPattern.exec(str);
while (result != null) {
  trace( result.index, "\t", result);
  result = myPattern.exec(str);
}
1 голос
/ 04 марта 2010

Я не знаю, между какими двумя слешами вы хотите, но попробуйте

var hierarchy : Array = params.category_id.split(/[\/|]/);

[\/|] означает косую черту или вертикальную черту.

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