页面

2011年10月10日星期一

提取url中的主机地址和资源地址

这是网易笔试的一道题目,比如
http://www.mp3.com/test.mp3
则需要提取出主机地址:www.mp3.com
需要提取出资源地址:/test.mp3

由于没有限定语言,处理字符串当然首选python

当时给出的测试域名全部是.com,所以直接就这么写了:
f = open('url.file','r')    #打开测试文件
for l in f.readlines():
s = l.find('://') #查找到://作为开始
e = l.find('com/') #查找到.com作为结束
host = l[s+3:e+3] #://和com之间的是主机
src = l[e+3:] #.com/后面的是src
print("host:"+host)
print("src:"+src)
#end for

上面的做法有明显的彼端,遇到非.com域名就悲剧了

所以还是应该使用正则

代码如下:
import re
f = open('url.file','r')
rc = re.compile('://[\S]+/) #正则匹配://xxxxx.xxx.xxx/
for l in f.readlines():
sch = rc.search(l) #在url中查找匹配字符,返回一个正则的对象
s = sch.start()
e = sch.end() #返回匹配到的字符串在url中的起始和终止位置,终止位置会在‘/’后面一个字符的位置,所以下面的处理中不必进行e+1
host = l[s+3:e]
src = l[e:]
print("host:"+host)
print("src:"+src)
#endfor

没有评论:

发表评论