【发布时间】:2020-05-22 12:42:18
【问题描述】:
我有一个包含 2 列的 Google 电子表格。
第一个单元格的每个单元格都包含 JSON 数据,如下所示:
{
"name":"Love",
"age":56
},
{
"name":"You",
"age":42
}
然后我想要第二列,使用公式提取名称的每个值并将其字符串如下:
Love,You
现在我正在使用这个公式:
=REGEXEXTRACT(A1, CONCATENER(CHAR(34),"name",CHAR(34),":",CHAR(34),"([^",CHAR(34),"]+)",CHAR(34),","))
正则表达式为"name":"([^"]+)",
问题是它目前只返回第一次出现,像这样:
Love
(另外,我不知道“名称”出现了多少次。可能从 0 到 20 左右。)
是否有可能实现我想要的?
非常感谢您的阅读!
编辑:
我的 JSON 数据以:
{
"time":4,
"annotations":[
{
然后在中间,是这样的:
{
"name":"Love",
"age":56
},
{
"name":"You",
"age":42
}
并以:
结尾],
"topEntities":[
{
"id":247120,
"score":0.12561166,
"uri":"http://en.wikipedia.org/wiki/Revenue"
},
{
"id":31512491,
"score":0.12504959,
"uri":"http://en.wikipedia.org/wiki/Wii_U"
}
],
"lang":"en",
"langConfidence":1.0,
"timestamp":"2020-05-22T12:17:47.380"
}
【问题讨论】:
-
您可以执行
=REGEXEXTRACT(C1, "(?s)""name"":""([^""]+)""(?:.*?""name"":""([^""]+)"")?")之类的操作,然后继续在末尾添加可选的(?:.*?""name"":""([^""]+)"")?以查找更多匹配项。
标签: regex google-sheets google-sheets-formula