需要帮助使用正则表达式从文本中提取json字符串中的字符串(python)

时间:2016-08-20 13:55:36

标签: python json regex

嗨,所以我试图从一段简单的代码中提取主持人姓名:

{
  "_links": {},
  "chatter_count": 2,
  "chatters": {
    "moderators": [
      "nightbot",
      "vivbot"
    ],
    "staff": [],
    "admins": [],
    "global_mods": [],
    "viewers": []
  }
}

我一直在尝试使用\“版主\”抓住版主:\ s * [(\ s * \“\ w * \”\, \ s *]但是要没有成功。 我正在使用regex而不是json解析主要是为了挑战。

1 个答案:

答案 0 :(得分: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模块,您可以更轻松地做一些事情:

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