复杂的字符串解析问题

时间:2012-05-17 05:32:21

标签: regex string parsing

我有以下PHP字符串:

  

“{ '嗒嗒':1178, '嗒嗒':0, '嗒嗒':260, '嗒嗒':0, 'needWrapper':

     
    

{'需要':'TEXTNEED','需要':'TEXTNEED'},'blah':'blah'}“

  

编辑:我把它分解为希望让它更具可读性

我需要从中获得“NEED:TEXTNEED”和“NEED:TEXTNEED”子串。我觉得有一个很好的方法可以使用正则表达式或使用爆炸或其他东西,但我不能完美拼凑优雅/工作的解决方案。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

如果用双引号替换单引号,可以用json解析它:

import json

s = "{'blah':1178,'blah':0,'blah':260,'blah':0,'needWrapper':{'NEED':'TEXTNEED','NEED':'TEXTNEED'}, 'blah':'blah'}"

print json.loads(s.replace("'", '"'))
# {u'blah': u'blah', u'needWrapper': {u'NEED': u'TEXTNEED'}}

现在你可以访问这些对象了。

如果源来自php,它应该能够生成带有双引号对象的有效JSON: http://www.php.net/manual/en/function.json-encode.php