私はこのような正規表現を持っています:
(.*?)("DisplayName":.*?)(,)(.*?"Groups":?)?(\[.*?\])?(,)(.*?"Phones":)?(\[.*?\])?(.*?\},)?
次のような文字列を処理したい:
{"Affinity":20,"DisplayName":"Moe Larry","Emails":[{"Address":"moelarry@gmail.com","Primary":true,"Type":{"Id":" HOME"}}],"FullName":{"FamilyName":"Larry","GivenName":"Moe","Unstructured":"Moe Larry"},"Groups":[{"id":"^Mine "}],"Id":"1234567890","MailsSent":0,"Name":"Moe Larry","Phones":[{"Number":"555-999-6661","Type":{ "Id":"MOBILE"}}],"ProfileLink":""},{"Affinity":20,"DisplayName":"stoogesarefunny","Emails":[{"Address":"stoogesarefunny","Primary ":真実}]、"EvergreenPhoto":"/photos/private/adflk;jsd394u75430o8752380974321jtkasdljf8937489213749832654","Id":"834754hthbf83744823f","送信済みメール":0},{"アフィニティ":20,"@stooges"mail."@stooges" Emails":[{"Address":"stoogesarefunny@gmail.com","Primary":true}],"EvergreenPhoto":"/photos/private/asdfAJDKLJSFIOEJHLTHSJKLDF234987s897KJHSDFKJHDF89273473ASLKJDLSKJIFEIH","Id":"834754hthbf83744823","メールSf" 0,"プロフィールリンク":"stoogesarefunny@gmail.com","Emails":[{"Address":"stoogesarefunny@gmail.com","Primary":true}],"EvergreenPhoto":"/photos/private/asdfAJDKLJSFIOEJHLTHSJKLDF234987s897KJHSDFKJHDF89273473ASLKJDLSKJIFEIH","Id": "834754hthbf83744823f","MailsSent":0,"ProfileLink":"stoogesarefunny@gmail.com","Emails":[{"Address":"stoogesarefunny@gmail.com","Primary":true}],"EvergreenPhoto":"/photos/private/asdfAJDKLJSFIOEJHLTHSJKLDF234987s897KJHSDFKJHDF89273473ASLKJDLSKJIFEIH","Id": "834754hthbf83744823f","MailsSent":0,"ProfileLink":"https://profiles.google.com/stoogesarefunny "},{"Affinity":20,"DisplayName":"Shemp","FullName":{"GivenName":"Shemp","Unstructured":"Shemp"} ,"Groups":[{"id":"^Mine"}],"Id":"1234567890","MailsSent":0,"Name":"Shemp","Phones":[{"Number": "+15553085671","Type":{"Id":"OTHER"}}]},{"Affinity":20,"DisplayName":"ClownFace","FullName":{"GivenName":"ClownFace", "Unstructured":"ClownFace"},"Groups":[{"id":"^Mine"}],"Id":"1234567890","MailsSent":0,"名前":"ClownFace","電話":[{"番号":"+15556064040","タイプ":{"ID":"OTHER"}}]},
それは本当に醜いです、私は知っています。xml フィードが見つかればいいのですが、今のところそれはできません。
私が気にかけているのは、DisplayName、Groups、および Phones だけです。それらを抽出して配列の配列に保存する必要があります。グループと電話のキャプチャ グループは、すべての連絡先にあるわけではないため、オプションにする必要があります。しかし、私の正規表現は私に与えます:
Result 1
1. {"Affinity":20,
2. "DisplayName":"Moe Larry"
3. ,
4. "Emails":[{"Address":"moelarry@gmail.com","Primary":true,"Type":{"Id":"HOME"}}],"FullName":{"FamilyName":"Larry","GivenName":"Moe","Unstructured":"Moe Larry"},"Groups":
5. [{"id":"^Mine"}]
6. ,
7. "Id":"1234567890","MailsSent":0,"Name":"Moe Larry","Phones":
8. [{"Number":"555-999-6661","Type":{"Id":"MOBILE"}}]
9. ,"ProfileLink":""},
Result 2
1. {"Affinity":20,
2. "DisplayName":"stoogesarefunny"
3. ,
4. "Emails":[{"Address":"stoogesarefunny","Primary":true}],"EvergreenPhoto":"/photos/private/adflk;jsd394u75430o8752380974321jtkasdljf8937489213749832654","Id":"834754hthbf83744823f","MailsSent":0},{"Affinity":20,"DisplayName":"stoogesarefunny@gmail.com","Emails":[{"Address":"stoogesarefunny@gmail.com","Primary":true}],"EvergreenPhoto":"/photos/private/asdfAJDKLJSFIOEJHLTHSJKLDF234987s897KJHSDFKJHDF89273473ASLKJDLSKJIFEIH","Id":"834754hthbf83744823f","MailsSent":0,"ProfileLink":"https://profiles.google.com/stoogesarefunny"},{"Affinity":20,"DisplayName":"Shemp","FullName":{"GivenName":"Shemp","Unstructured":"Shemp"},"Groups":
5. [{"id":"^Mine"}]
6. ,
7. "Id":"1234567890","MailsSent":0,"Name":"Shemp","Phones":
8. [{"Number":"+15553085671","Type":{"Id":"OTHER"}}]
9. },
Result 3
1. {"Affinity":20,
2. "DisplayName":"ClownFace"
3. ,
4. "FullName":{"GivenName":"ClownFace","Unstructured":"ClownFace"},"Groups":
5. [{"id":"^Mine"}]
6. ,
7. "Id":"1234567890","MailsSent":0,"Name":"ClownFace","Phones":
8. [{"Number":"+15556064040","Type":{"Id":"OTHER"}}]
9. },
明らかに、Shemp の連絡先データはすべて stogesarefunny@gmail.com のデータに組み込まれています。私の正規表現は、彼の表示名の前で停止して最初からやり直すのではなく、Shemps グループに到達するまでむさぼり食い続けるからです。ヘルプ?
PS: いいえ、これらすべてのグループを保存するつもりはありません。最終的には、何が起こっているのかを調査できるようにするためです。