我想用下面的示例打印所有名称。名称每次都是随机的。
txt = "[something name=\"Paul\" other=\"1/1/1\"][something name=\"James\" other=\"4/3/5\"][something name=\"Victor\" other=\"7/2/6\"][something name=\"Jane\" other=\"4/3/6\"]"
我知道如何首先打印这些名字:
print str(txt[txt.index('[something name=\"')+17:txt.index(' other')-1])
但我该怎么打印?我需要在新行中打印所有名称:
Paul
James
Victor
Jane
答案 0 :(得分:5)
看起来你可以在这里使用正则表达式:
\
打印:
import re
txt = "[something name=\"Paul\" other=\"1/1/1\"][something name=\"James\" other=\"4/3/5\"][something name=\"Victor\" other=\"7/2/6\"][something name=\"Jane\" other=\"4/3/6\"]"
for name in re.findall('name\=\\"(.*?)\\\"', txt):
print name
答案 1 :(得分:1)
另一种方法是按如下方式拆分字符串:
txt = "[something name=\"Paul\" other=\"1/1/1\"][something name=\"James\" other=\"4/3/5\"][something name=\"Victor\" other=\"7/2/6\"][something name=\"Jane\" other=\"4/3/6\"]"
for x in txt.split(']'):
if len(x):
print x.split('"', 2)[1]
,并提供:
Paul
James
Victor
Jane