2012-05-23 74 views
0

我在这里很新,我希望我能解释我的问题。正则表达式,在大括号内找到文字

我有这样一个字符串: “{sometext {'id':123,'email':'email1','pass':'pass1'},someothertext:{'id':456,''电子邮件':'email2','pass':'pass2'}}“

我想创建一个这样的数组: Array([0] =>'id':123,'email' :'email1','pass':'pass1'[1] =>'id':456,'email':'email2','pass':'pass2')

我找不到常规表达式来做到这一点:(...)(

好吧,如果我可以用$ arr [0] [0],第一封电子邮件与$ arr [0] [1]访问第一个ID会好得多。 ..等等。

任何人都可以帮助我吗? 非常感谢


抱歉,延迟..谢谢大家! 终于我成功:) 我删除了外部大括号,用双引号替换单引号,然后使用json_decoded(它是完美的!) 再次感谢你!

+0

什么语言? JS? – sp00m

回答

2

您描述的输入字符串似乎是JSON格式。有很多图书馆阅读各种语言的JSON数据,看看:http://www.json.org/

+0

听起来像OP正在使用PHP。查看['json_decode'](http://php.net/manual/en/function.json-decode.php)。 –

0

此正则表达式可以帮助

{(?:'([^']*)':([^,]*),?)*} 

,第一组将包含“ID”和第二组“123”

请注意,如果使用1个正则表达式执行此操作,则需要一个支持同一组中多个捕获的正则表达式引擎。 .NET正则表达式引擎可以做到这一点。

如果不是,你需要使用正则表达式分别进行2遍。让我知道你用这个答案有多远。