RegEx - 某个匹配后的单词[重复]
Posted
技术标签:
【中文标题】RegEx - 某个匹配后的单词[重复]【英文标题】:RegEx - Word after a certain match [duplicate] 【发布时间】:2020-05-18 15:47:42 【问题描述】:我有一个 RegEx 问题,我很难找到解决方案。我想处理以下类型的字符串列表:
genre = '["id": 28, "name": "Action", "id": 12, "name": "Adventure", "id": 14, "name": "Fantasy", "id": 878, "name": "Science Fiction"]'
这些是我正在使用的电影数据框的“类型”列。 我想返回一个仅包含流派名称的列表。我尝试过使用 re.match() 和 .search()。但我太喜欢 RegEx 初学者了。
你能帮我解决这个问题吗?
非常感谢您!
【问题讨论】:
【参考方案1】:你问的是正则表达式,但是这样的事情呢?
list_ = eval('["id": 28, "name": "Action", "id": 12, "name": "Adventure", "id": 14, "name": "Fantasy", "id": 878, "name": "Science Fiction"]')
[genre["name"] for genre in list_]
这当然是假设您只有字符串。如果您有列表本身,则不需要使用eval
的解决方法。此外,如果您的数据来自不受信任的来源,请注意安全问题。
【讨论】:
感谢您的回复 :D 我不熟悉这种方法。问题是这个字符串在数据框的一列上重复。这不只是一个,我想收到一组电影的不同类型。非常非常感谢。 您应该发布您的数据可用的确切方式。 你是对的,对不起。我是这里的新手。【参考方案2】:这个"id": 12, "name": "Adventure"
是键值对,整个表达式是一个字典列表,见Python list of dictionaries search,所以Myke的回答不错,也见How to convert a string containing a list of dict into Python object?
【讨论】:
这是完美而简单的。感谢您和 myke 的帮助。 :D以上是关于RegEx - 某个匹配后的单词[重复]的主要内容,如果未能解决你的问题,请参考以下文章