搜索一串文本并在Python中复制以下数据

时间:2016-01-12 15:10:37

标签: python

我有一串数据如下:

data-name="Stacey" data-s="Smith" data-name="Bradley" data-s="Lomax"

我希望能够在txt文件中搜索数据名​​称并输出

Stacey 
Bradley

我知道如何打印整行,但我只想打印信息的关键位。

3 个答案:

答案 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