【发布时间】:2018-02-25 02:12:28
【问题描述】:
我有一长串这种格式的后续字符串(或任何你可以称呼它的名称):
"(str10, str20, str30), (str11, str21, str31), (str12, str22, str32), ..."
括号内的所有字符串都用单引号括起来。
我想将整个字符串转换为 JSON,提取括号内的所有字符串作为值,并为它们分配一个特定的键。因为我只知道 JS 和 Python(而且我显然不是专业人士),所以我尝试用正则表达式来做。然而,问题是 JS 不能将上面的列表(或任何你可能称之为的)识别为字符串。由于列表太长,手动添加转义字符是不切实际的。所以,我不知道该怎么做......
是否有一种通用的方法(可能是合适的语言、某个库或某物)来搜索这些模式并提取它们?谢谢!
我的尝试
/([A-Z]{2})',\s'(.+)',\s'(.+)/g
示例列表
"""
('AD', 'Andorra', 'Hola'),
('AE', 'United Arab Emirates', 'Marhaba'),
('AF', 'Afghanistan', 'Senga yai'),
('AG', 'Antigua and Barbuda', 'Hello'),
('AI', 'Anguilla', 'Hello'),
('AL', 'Albania', 'Tungjatjeta'), ...
"""
预期输出
[{"key1": "AD", "key2": "Andorra", "key3": "Hola"},
{"key1": "AE", "key2": "United Arab Emirates", "key3": "Marhaba"},
{"key1": "AF", "key2": "Afghanistan", "key3": "Senga yai"},
{"key1": "AG", "key2": "Antigua and Barbuda", "key3": "Hello"},
{"key1": "AI", "key2": "Anguilla", "key3": "Hello"},
{"key1": "AL", "key2": "Albania", "key3": "Tungjatjeta"}, ...
]
【问题讨论】:
-
你可以用 "), (" 分割,你会得到一个组合字符串 "str10, str20, str30" 的数组。进一步你可以用 "," 再次分割它得到 str10, str20 , 和 str30 分开。假设整个文档中的模式是相同的
-
预期结果。
-
@S.Jovan 预期的结果应该是这样的。像这样:[{“key1”:str10,“key2”:str20,“key3”:str30},{“key1”:str11,“key2”:str21,“key3”:str31},{“key1”:str12 , "key2": str22, "key3": str32 }, ... ]
-
@KendrickKesley 文档太长,无法手动拆分。有没有办法自动化这个?
-
@S.Jovan 在 js 语法中,这个正则表达式
/([A-Z]{2})',\s'(.+)',\s'(.+)/g查找所有出现并适当地分组它们。一个例子是 ('VA', 'Holy See (Vatican City State)', 'Buon giorno')