如何在as3中拆分消息?

时间:2012-04-10 12:55:51

标签: regex actionscript-3

嗨,我试图将单词 rtmp://xx.yyy.in/sample/test?22082208,False#& all 这个单词分开。动词添加的单词示例我不要不知道伯爵。 我想拆分 / sample / 如何帮助我?

2 个答案:

答案 0 :(得分:2)

你想要string.split()方法

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html#split%28%29

var array:Array = myString.split("/"); //returns an array of everything in between / 

在你的情况下,这将返回

[0] - >?rtmp:/ [1] - > xx.yy.in [2] - >样本[3] - > test?22082208,False#& all

如果您正在寻找除测试之外的所有内容?22082208,False#&所有部分和您的网址将始终采用此格式,您可以使用string.lastIndexOf()

 var pos:int = string.lastIndexOf("/", 0); //returns the position of the last /
 var newString:String = string.substr(0, pos); //creates a new string starting at 0 and ending at the last index of /

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html#substr%28%29

答案 1 :(得分:2)

您可以使用正则表达式执行此操作(以及几乎所有操作):

var input:String = "rtmp://xx.yyy.in/sample/test?22082208,False#&all";
var pattern:RegExp = /^rtmp:\/\/.*\/([^\/]*)\/.*$/;
trace(input.replace(pattern, "$1")); //outputs "sample"

这是正则表达式的详细信息:

  • ^:字符串的开头
  • rtmp:\/\/第一个找到“rtmp://”
  • 的字符串
  • .*任何
  • \/第一次斜线
  • ([^\/])捕捉除了斜线之外的一切,直到...
  • \/ ...第二次斜线
  • .*任何
  • $结束

然后$1表示括号内的捕获组。