0

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

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

  1. 包含任意数量的空格和特殊字符的名称
  2. 任意数量的空格
  3. 一个号码
  4. 单个空间
  5. 总是一个字符串“GB”

示例字符串是:

  • 堆栈溢出 500 GB
  • 堆栈溢出 100 GB
  • 堆栈!@#$%%^&*_ 流量 50 GB

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

4

2 回答 2

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);

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

于 2013-09-22T16:07:36.717 回答
0

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

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

\1使用在和中捕获的内容创建对象\3

在这里,每对括号将问题中提到的内容分别捕获[1]到to 。[5]\1\5

检查这一点: http ://regex101.com/r/xF4qS8

于 2013-09-22T18:23:15.407 回答