2016-08-20 8 views
1

こんにちはお困り\ "モデレータ\":\ s * [(\ s * \ "\ * *" "\、 \ s *]を使ってモデレータをつかんでください。 私はjson parsingよりもregexを使っています。ので、私はこのようなコードの簡単な片から司会者名を抽出しようとしている(パイソン)のテキストからJSON文字列から文字列を抽出するために正規表現を使用して

+3

をあなたが解析できるJSONを持っています。なぜ正規表現を使うのですか? –

+0

[Parse JSON in Python]の重複している可能性があります(http://stackoverflow.com/questions/7771011/parse-json-in-python) –

+0

こんにちは@ cricket_007、それはほとんどの課題と練習です。 – seiqooq

答えて

1
moderators = list() 
first = re.compile(r'moderators.*?\[([^\]]*)', re.I) 
second = re.compile(r'"(.*?)"') 

strings = first.findall(string) 
for strings2 in strings: 
    moderators = moderators + second.findall(strings2) 

これはトリック

最初の正規表現は2角括弧の間のすべてを抽出を行う必要があります。 2番目の正規表現はその文字列を抽出します。

私はJSONモジュールを使用して、NOW

を書くの読みやすさと使いやすさのために2つの正規表現式にそれを破った、あなたがはるかに簡単に何か行うことができます:

import json 
a = json.loads(string) 
moderators = a['chatters']['moderators'] 
+0

また、 're'モジュールはリピートキャプチャグループをサポートしていないので、あなたがモデレータの特定のメンバーを取得するのに使うことはできません - ただし、司会者が持つことができるメンバー。 Python 3.xのregexモジュールを検索すると、繰り返しのキャプチャグループがサポートされます。 – engineer14

関連する問題