Je dois analyser une chaîne de caractères extrêmement complexe pour en extraire une section particulière, qui contient une clé étrangère à une base de données (l'extrait provient d'un produit appelé Interspire Email Marketer et contient une logique étrange pour filtrer une liste de contacts).Analyse d'une chaîne complexe de caractères avec Ruby
La chaîne en question est la suivante (oui, je me rends compte qu'il est extrêmement bizarre Voilà comment le système stocke elle.):
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";}}}}}}
La partie que je besoin est {i:0;s:1:"<here>";}
mais il peut être plus qu'un seul personnage. Comment puis-je analyser cette chaîne étrange et extraire le nombre dont j'ai besoin avec Ruby?
Comment l'analyseur sait-il extraire cette partie? Parce qu'il a une certaine valeur pour i et s? Parce que i est 0 et s est 1? C'est-à-dire, cherchez-vous {i: \ *; s: \ *: "\ *"} où \ * peut être quelque chose? Ou cherchez-vous i: 0; s: 1? Ou autre chose? – DigitalRoss
Vous devriez examiner plus d'exemples et chercher des moyens de trouver la chaîne "" qui vaut vrai pour chacun d'eux. –
Inshallah