空格,动作脚本和正则表达式

时间:2011-02-04 18:04:08

标签: flash flex actionscript-3

我有一个需要正确解析的文本文件。文本文件如下所示:

[header]
   [header 2]
   [ header3 ] 

我可以通过这样做抓住这些标题

var expression:RegExp = /[ [a-z0-9 ]+ ]/igxm;
var items:Array = text.match(expression);

但我还想删除括号前后的空白区域,这样标题就可以与左边缘对齐。另外,对于[header3],我想删除括号内的空格,在“h”之前和“3”之后。什么是正确的正则表达式?提前谢谢。

语气

2 个答案:

答案 0 :(得分:1)

类似的东西:

var expression:RegExp = /\[[ ]*([a-z0-9 ]*[a-z0-9]+)[ ]*\]/igxm;
var header:String = text.replace(expression, "$1");

这假设您每行只有一个匹配(在每行上运行相同的正则表达式)。如果要遍历整个字符串,可以使用String.match()运行相同的正则表达式,然后使用上面的代码段来提取组。

答案 1 :(得分:1)

和其他方式:

var str:String = "[header]\n   [header 2]\n   [ header3 ] ";
var tmpArr:Array = str.match(/\[\s*\w+\s*\d*\s*\]/gm);
for (var i:int = 0; i < tmpArr.length; i++ ) {
    tmpArr[i] = tmpArr[i].replace(/(\[)\s+(\S.+\S)\s+(\])/g, '$1$2$3');
}
trace(tmpArr.join('\n'));
/*-outputs-
[header]
[header 2]
[header3]
---------*/