我无法处理这个正则表达式。
以下是一行中的字符串,我希望能够在swatchColorList
中提取该内容,具体而言我希望单词Natural Burlap
,Navy
,{{1} }
我所尝试的是'[(。*?)]'将所有内容都放在括号内,但我真正想要的是在一行中完成它?是可能的,还是需要分两步完成?
由于
Red
答案 0 :(得分:1)
你可以试试这个正则表达式
(?<=[[,]\{\")[^"]+
如果不支持负面后卫,您可以使用
[[,]\{"([^"]+)
这将在第1组中保存所需的单词。
答案 1 :(得分:0)
import json
str = '{"id":"1349306","categoryName":"Kids","imageSource":"7/optimized/8769127_fpx.tif","swatchColorList":[{"Natural Burlap":"8/optimized/8769128_fpx.tif"},{"Navy":"5/optimized/8748315_fpx.tif"},{"Red":"8/optimized/8748318_fpx.tif"}],"suppressColorSwatches":false,"primaryColor":"Natural Burlap","clickableSwatch":true,"selectedColorNameID":"Natural Burlap","moreColors":false,"suppressProductAttribute":false,"colorFamily":{"Natural Burlap":"Ivory/Cream"},"maxQuantity":6}'
obj = json.loads(str)
words = []
for thing in obj["swatchColorList"]:
for word in thing:
words.append(word)
print word
输出
Natural Burlap
Navy
Red
单词将存储到words
列表中。我意识到这不是正则表达式,但我想阻止在序列化对象表示法上使用正则表达式,因为正则表达式不是为了解析带有嵌套表达式的字符串。