从网址获取产品代码,我需要正则表达式吗?

时间:2010-08-15 05:22:34

标签: python regex

网址如下:

http://www.example.com/cgi-bin/blahblah?&PC=abd23423&uy=020

我需要提取值:abc23423

我尝试了这个正则表达式,但它不起作用:

rx = re.compile(r'PC=(\w*)&uy=')

然后我做了:

pc = rx.search(url).groups()

但是我收到了错误:

属性错误:nonetype对象没有属性组。

3 个答案:

答案 0 :(得分:4)

尝试urlparse

答案 1 :(得分:2)

<强>更新

啧。我在想什么?

import urlparse
u = 'http://www.example.com/cgi-bin/blahblah?&PC=abd23423&uy=020'
query = urlparse.urlparse(u).query
urlparse.parse_qs(query) # {'PC': ['abd23423'], 'uy': ['020']}

原始答案

此代码段对我有用。看看:

import urlparse, re

u = 'http://www.example.com/cgi-bin/blahblah?&PC=abd23423&uy=020'
query = urlparse.urlparse(u).query

pattern = re.compile('PC=(\w*)&uy')
pattern.findall(query) # ['abd23423']

答案 2 :(得分:0)

lol = "http://www.example.com/cgi-bin/blahblah?&PC=abd23423&uy=020"
s = re.compile("&PC=(\w+)&uy=")
g = s.search(lol)
g.groups()
('abd23423',)

这似乎对我有用。