用于在Flex / Action Script中拆分字符串的正则表达式

时间:2013-09-22 15:31:30

标签: regex string actionscript-3 flex parsing

我有一个字符串数组,我想解析它并创建一个ObjectCollection对象。

字符串的形式为“[1] [2] [3] [4] [5]”。其中每个数字代表以下

  1. 包含任意数量的空格和特殊字符的名称
  2. 任意数量的空格
  3. 一个数字
  4. 单个空格
  5. 字符串“GB”始终
  6. 示例字符串是:

    • StackOverflow 500 GB
    • Stack Over flow 100 GB
    • Stack!@#$ %% ^& * _ Flow 50 GB

    我希望有一个正则表达式,通过它我可以匹配部分[1]和[3](例如StackOverflow和500)并使用这些字段创建对象。

2 个答案:

答案 0 :(得分:0)

我建议使用split方法将其转换为数组。如果你可以控制分隔符并使其成为单个字符;我强烈推荐它。例如,像这样:

var myString :String = "1|2|3|4|5";
var myAray :Array = myString.split('|');

但是,如果您无法控制字符串分隔符,则可以使用正则表达式。概念上是这样的:

var myString :String = "[1][2][3][4][5]";
var regEx : RegExp = new RegExp([\[]|[\]]|[\[\]]);
var myAray :Array = myString.split(regEx);

你应该假设我的正则表达不完美;但有关创建它们的更多信息here。 您可能会在开头和结尾处获得空数组项,因为您的字符串以分隔符开头和结尾。

答案 1 :(得分:0)

我不熟悉Flex / Action Script,但可以建议一般的正则表达式。

(.*)(\s+)(\d+)(\s)(GB)

使用\1\3

中捕获的内容创建对象

此处,每对括号分别将问题中提到的[1][5]内容捕获到\1\5

检查此操作: http://regex101.com/r/xF4qS8