apache-flex 使用正则表达式拆分,创建空字符串

lqfhib0f  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(125)

我试图生成一个文本或“图像块”元素的数组。

var str : String = "";

for (var i : int = 0; i < 100; i++)
{
    str += (Math.random() > .5) ? "<img>amazed</img>" : "<img>happy</img>";
}

var arr : Array = str.split(/(<img>\w+<\/img>)/);

我希望数组的长度为100,并且数组中的每个元素都反映<img>amazed</img><img>happy</img>。相反,长度为201,并且每隔一个元素都是空String。
有没有一种简单的方法来改变正则表达式,以避免数组的大小加倍?

vfh0ocws

vfh0ocws1#

**String.split(...)**按提供的分隔符拆分给定的字符串,而不是搜索它们。

要查找所有与RegEx匹配的项,您需要使用**String.match(...)**方法:

var S:String = "";

for (var i:int = 0; i < 100; i++)
{
    S += (Math.random > .5)? "<img>amazed</img>": "<img>happy</img>";
}

// Pay attention to the greedy 'g' flag, if you don't set it,
// you will get the first match only as the result.
var R:RegExp = /<img>\w+<\/img>/g;
var A:Array = S.match(R);

相关问题