首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python解析黑莓浏览器用户代理

Python解析黑莓浏览器用户代理
EN

Stack Overflow用户
提问于 2010-12-08 14:02:25
回答 3查看 543关注 0票数 1

我需要解析黑莓浏览器用户代理,这样我就可以得到它使用python2.5的设备和版本。例如:

代码语言:javascript
复制
BlackBerry9630/4.7.1.65 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/-1,gzip(gfe),gzip(gfe)

在上面的用户代理中,我想收集以下组:

浏览器:黑莓设备: 9630主要版本:4个次要版本:7

剩下的我不在乎的信息。

下面是另一个例子:

代码语言:javascript
复制
BlackBerry9530/5.0.0.328 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/105,gzip(gfe),gzip(gfe),gzip(gfe)

浏览器:黑莓设备: 9530主要版本:5个次要版本:0

我很不擅长找出正则表达式,任何帮助都会很好。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-08 14:06:08

像这样的东西会适用于你的情况,但不一定是所有的情况:

代码语言:javascript
复制
'^(\D*)(\d*)/(\d*)\.(\d*)\.'

\D的意思是“任何不是十进制数字的字符”,而\d的意思是“任何十进制数字”。

票数 1
EN

Stack Overflow用户

发布于 2010-12-08 14:10:43

代码语言:javascript
复制
browser, version = useragent.split()[0].split("/")
browsername = re.findall(r"[a-zA-Z]+", browser)
device = re.findall(r"[0-9]+", browser)
versions = re.findall(r"[0-9]+", version)
major = versions[0]
minor = versions[1]
票数 0
EN

Stack Overflow用户

发布于 2010-12-08 14:18:53

代码语言:javascript
复制
>>> import re
>>> s = 'BlackBerry9530/5.0.0.328 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/105,gzip(gfe),gzip(gfe),gzip(gfe)'
>>> print(re.compile(r'(Blackberry)(\d+)/(\d+)\.(\d+)\.',re.I).search(s).groups())
('BlackBerry', '9530', '5', '0')
>>>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4388323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档