0

我在这里很新,我希望我能解释我的问题。

我有一个这样的字符串:“{sometext {'id':123,'email':'email1','pass':'pass1'},someothertext:{'id':456,'email':'email2 ','通过':'pass2'}}"

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

我找不到执行此操作的正则表达式... :(

好吧,如果我可以使用 $arr[0][0] 访问第一个 id,使用 $arr[0][1] 访问第一封电子邮件...等等,那就更好了。

谁能帮帮我??多谢


抱歉耽搁了……谢谢大家!!最后我成功了 :) 我删除了外部大括号,用双引号替换了单引号,然后使用了 json_decoded (非常完美!)再次感谢您!

4

2 回答 2

2

您描述的输入字符串似乎是 JSON 格式。有很多库可以读取各种语言的 JSON 数据,请查看: http: //www.json.org/

于 2012-05-23T23:00:14.727 回答
0

这个正则表达式可以帮助

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

第一组将包含“id”,第二组将包含“123”

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

如果不是,您需要使用正则表达式进行 2 次传递。让我知道您对这个答案的了解程度。

于 2012-05-23T23:08:24.483 回答