从主字符串Python获取子字符串

2024-10-01 07:11:27 发布

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

我有一个string,我想从主string中提取一个substring

一些示例字符串是:

http://domain.com/xxxxx/xxxxxxxx?tags=%7C105651%7C102496&Asidebar=1&dnr=y
http://domain.com/xxxxx/xxxxxx?tags=%7C12784%7C102496&index=28&showFromBeginning=true&

我想得到tags value。你知道吗

在这种情况下:

val = %7C105651%7C102496

val = %7C12784%7C102496

有机会得到吗?你知道吗

编辑

tags = re.search('tags=(.+?)&Asidebar', url)
print tags
if tags:
    found = tags.group(1)
    print (found)
output: None

注意:我只是想从第一个字符串中得到一些东西


Tags: 字符串comhttp示例stringdomaintagsval
2条回答

你就快到了。您不需要在regex中编写Asidebar。因为在第二个输入字符串中,没有名为Asidebar的子字符串。你知道吗

tags = re.search('tags=(.+?)&', url)
if tags:
    found = tags.group(1)
    print (found)

使用^{}^{}(python2.x):

>>> import urlparse
>>> import cgi
>>>
>>> s = 'http://domain.com/xxxxx/xxxxxxxx?tags=%7C105651%7C102496&Asidebar=1&dnr=y'
>>> cgi.parse_qs(urlparse.urlparse(s).query)
{'dnr': ['y'], 'Asidebar': ['1'], 'tags': ['|105651|102496']}
>>> cgi.parse_qs(urlparse.urlparse(s).query)['tags'][0]
'|105651|102496'

在Python3.x中,使用^{}^{}

>>> import urllib.parse
>>>
>>> s = 'http://domain.com/xxxxx/xxxxxxxx?tags=%7C105651%7C102496&Asidebar=1&dnr=y'
>>> urllib.parse.parse_qs(urllib.parse.urlparse(s).query)['tags'][0]
'|105651|102496'

相关问题 更多 >