Python Regex解析Blackberry浏览器用户代理

2024-04-29 18:51:27 发布

您现在位置:Python中文网/ 问答频道 /正文

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

BlackBerry9630/4.7.1.65 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/-1,gzip(gfe),gzip(gfe)

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

Browser: Blackberry 
Device: 9630 
Major Version: 4 
Minor Version: 7

剩下的信息我不在乎。在

下面是另一个例子:

^{pr2}$
Browser: Blackberry
Device: 9530
Major Version: 5
Minor Version: 0

我很难搞清楚正则表达式,任何帮助都会很好。谢谢


Tags: 用户版本browser代理versiondevice浏览器profile
3条回答
>>> 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')
>>>
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]

这样的方法对您的案例有效,但不一定适用于所有案例:

'^(\D*)(\d*)/(\d*)\.(\d*)\.'

\D表示“任何非十进制数字的字符”,而\d表示“任何十进制数字”。在

相关问题 更多 >