jeffinier 发表于 2016-09-05 12:50

求取出关键字的正则表达式

[{u'hosts': [{u'hostid': u'18102'}], u'groupid': u'9'}, {u'hosts': [{u'hostid': u'18102'}], u'groupid': u'14'}, {u'hosts': [{u'hostid': u'18102'}], u'groupid': u'18'}, {u'hosts': [{u'hostid': u'18102'}], u'groupid': u'32'}]

如上的例子,我想取出所有关键字groupid后面的数字,想要输出:9,14,18,32...但是groupid数量不定,可能是1个,3个或者多个,我的目的是有多少个就取多少个,然后打印出来, 怎么实现这样的正则呢?

zxy877298415 发表于 2016-09-05 15:15

回复 1# jeffinier


l=[{u'hosts': [{u'hostid': u'18102'}], u'groupid': u'9'}, {u'hosts': [{u'hostid': u'18102'}], u'groupid': u'14'}, {u'hosts': [{u'hostid': u'18102'}], u'groupid': u'18'}, {u'hosts': [{u'hostid': u'18102'}], u'groupid': u'32'}]
for i in l:
for k,v in i.items():
if k == "groupid":print v

Linux_manne 发表于 2016-09-13 10:28

[ i['groupid'] for i in l if i.has_key('groupid')]

sunzhiguolu 发表于 2016-09-15 14:30

将符合 'groupid': u'9' 模式的字符串放入一个数组, 打印下就行了.
页: [1]
查看完整版本: 求取出关键字的正则表达式