我有一串数据如下:
data-name="Stacey" data-s="Smith" data-name="Bradley" data-s="Lomax"
我希望能够在txt文件中搜索数据名称并输出
Stacey
Bradley
我知道如何打印整行,但我只想打印信息的关键位。
答案 0 :(得分:1)
你可以拆分" :
s.split('"')[1]
会给你" Stacey"因为
print s.split('"')
#outputs
["data-name=", "Stacey", " data-s", "Smith", ...]
如果你想挑选其他一个:
s.split('"')[1::2] #picks indexes 1, 3, 5, ...
会给你[" Stacey"," Bradley"]
如果您的输入比您所显示的更复杂,那么regexp就是您的选择。
答案 1 :(得分:0)
要扩展Sildar在此处给出的答案,您可以创建一个字典,其中包含属于某个键的所有值,如下所示:
map = dict()
splitted = s.split(' ') # Get parts such as 'data-name="Stacey"'
for s in splitted:
keyvalpair = s.split('=')
key = keyvalpair[0] # This will be 'data-name'
val = keyvalpair[1] # You might want to remove the " still, as it now says '"Stacey"'
if not key in map:
map[key] = list()
map[key].append(val)
print map["data-name"]
答案 2 :(得分:0)
使用re
模块:
>>> import re
>>> string
'data-name="Stacey" data-s="Smith" data-name="Bradley" data-s="Lomax"'
>>> print '\n'.join(re.findall(r'(?<=data-name\=\")[^"]+(?=\")', string))
Stacey
Bradley