我需要解析字符的一個極其複雜的字符串來提取它的一個特定部分,其中包含一個外鍵,數據庫(片段來自一個叫做Interspire郵件營銷產品和含有一些奇怪的邏輯來過濾聯繫人列表)。解析字符的複雜的字符串使用Ruby
有問題的字符串如下(是的,我知道這是非常奇怪這是怎麼了系統存儲。):
a:2:{s:5:"Lists";a:1:{i:0;s:1:"6";}s:5:"Rules";a:1:{i:0;a:3:
{s:4:"type";s:5:"group";s:9:"connector";s:3:"and";s:5:"rules";a:1:{i:0;a:3:
{s:4:"type";s:4:"rule";s:9:"connector";s:3:"and";s:5:"rules";a:2:
{s:8:"ruleName";s:3:"100";s:12:"ruleOperator";s:7:"isempty";}}}}}}
我需要的部分是{i:0;s:1:"<here>";}
但它可不僅僅是一個單一的更字符。我該如何解析這個怪異的串並提取我需要使用Ruby多少?
如何解析器知道要提取一部分?因爲它對我和s有一些價值?因爲我是0而s是1?即,你找{I:\ *; S:\ *: 「\ *」}其中\ *可以是任何東西?或者你在尋找我:0; s:1?或者是其他東西? – DigitalRoss 2009-09-22 20:15:05
你應該檢查更多的樣本,並尋找方法來找到「」字符串,適用於所有的人都是如此。 –
Inshallah
2009-09-22 20:19:32