正则表达式,在大括号内找到文本

时间:2012-05-23 22:52:40

标签: php regex arrays brackets curly-braces

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

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

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

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

好吧,如果我可以使用$ arr [0] [0]访问第一个id,首先使用$ arr [0] [1]等电子邮件等等,这会好得多。

有人可以帮我吗? 非常感谢


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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

这个正则表达式可以帮助

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

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

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

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