2012-05-23 121 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遍。讓我知道你用這個答案有多遠。