如何使用正则表达式

时间:2015-08-13 19:44:16

标签: python

我在python ["john","doe","1","90"]["prince","2","95"]中有以下列表。第一个数字列是字段:id和第二个数字字段是分数。我想在python中使用re来解析字段并打印。到目前为止,我只知道如何分割字段逗号。任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

你最好使用字典而不是正则表达式(我在这里看不到你如何使用):

{'name': 'John Doe', 'id': '1', 'score': '90'}

或者更好的是,使用数字:

{'name': 'John Doe', 'id': 1, 'score': 90}

答案 1 :(得分:0)

你真的不需要在这里表达正则。你可以使用isinstance()和切片。

这应该做你想要的:

a_list = ['john','doe','1','90']

for i, elem in enumerate(a_list):
    try:
        elem = int(elem)
    except ValueError, e:
        pass
    if isinstance(elem, int):
        names_part = a_list[:i-1]
        id_and_score = a_list[i-1:]

        print 'name(s): {0}, '.format(' '.join(names_part)), 'id: {id}, score: {score}'.format(id=id_and_score[0], score=id_and_score[1])

但是,如果我们知道您的数据来源或者是否有办法确定字段位置,那么这个解决方案可以改进,您只需按照建议将列表转换为字典即可。如果您提取数据,您可以考虑建立一个字典,而不是列表,以防止您必须执行上述操作。