如何创建一个正则表达式来解析这样的网址?

时间:2011-02-19 18:17:22

标签: regex flash actionscript-3 url mxml

所以我们需要http://127.0.0.1:4773/robot10382.flv?action=read我们需要从protocol,ip / adress,端口,实际url(此处为robot10382.flv)和{{1} (action = read here)如何在一个reg exp中将所有内容解析为字符串变量?

3 个答案:

答案 0 :(得分:3)

我很惊讶AS3没有包含正确的URL解析工具。简而言之,使用RE安全地解析URL并不容易。 Here's an example of doing it though.

答案 1 :(得分:2)

/(\w+)\:\/\/(\d+\.\d+\.\d+\.\d+)\:(\d+)\/(\w+)\?(.+)/:$ 1 - 协议,$ 2 - ip,$ 3 - 端口,$ 4 - 实际网址,$ 5 - 操作

还有另一种方式:
协议:url.split('://')[0]
ip /域名:url.split('://')[1].split(':')[0](如果没有指定端口 - url.split('://')[1].split('/)[0]
港口:url.split('://')[1].split(':')[1].split('/')[0]
实际网址:url.split('?')[0].split('/').reverse()[0]
操作:此数组的url.split('?')[1].split('&')/*the most possible separator imho*/元素也可以拼接('=')以分隔变量名称和值。
我知道有一种观点认为splice不应该使用,但我认为如果使用得当它会很漂亮。

答案 2 :(得分:0)

有时,在将文件路径传递给SWF时,您希望在将文件传递给AS3类之前执行FileExistance检查。为此,您需要知道URI是文件还是http URL或具有特定协议的任何其他URI(名字对象)。 以下代码将告诉您是否正在处理本地完整路径或相对路径。

http://younsi.blogspot.com/2009/08/as3-uri-parser-and-code-sequence-to.html