AS3删除字符串中单词后面的字符

时间:2013-02-06 09:42:31

标签: regex actionscript-3 flash air flash-cs5

AS3 | Adove Air 3.5 | Flash CS6

我把html从一个在线资源中拉出来放入一个字符串,我正在逐个拆分,根据我提取的信息构建一个XML文件。我需要搜索整个字符串以删除“info”后面的字符,直到字符“&”。整个字符串中有多个这样的实例,所以我认为最好使用RegExp。欢迎提出其他建议。

//code from the website put into a full string
var fullString = new String(urlLoader.data);

//search string to find <info> and remove characters AFTER it up until the character '&'
var stringPlusFive:RegExp = /<info>1A2E589EIM&/g;

//should only remove '1A2E589EIM' leaving '<info>&'
fullString = fullString.replace(stringPlusFive,"");

我遇到的问题是“1A2E589EIM”不一致。它们是随机数字和字符,可能是长度,所以我不能真正使用我上面写的。它总是会导致“&amp;”。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为正则表达式更像是

//search string to find <info> and remove characters AFTER it up until the character '&'
var stringPlusFive:RegExp = /<info>\w+&/g;

//should only remove '1A2E589EIM' leaving '<info>&'
fullString = fullString.replace(stringPlusFive,"<info>&");

现在,如果你要将你的字符串解析为XML,你可以等到你的XML结构,然后从'info'节点中删除信息字符串

//code from the website put into a full string
var fullString = new String(urlLoader.data);

//parse to XML
var xml:XML = XML(fullString),
    index:int, text:string;

for each(var info:XML in xml.descendants('info')){
  text = info.*[0].text();
  index = text.indexOf('&');
  if(index != -1){
    info.*[0] = text.substr(index);
  }
}

我不确定对* [0]的影响,但应该是这样的。希望这会有所帮助。