首页 > 解决方案 > 如何在字符串中添加双引号?

问题描述

我有一个类似 Json 的字符串,如下所示:

{cid: {ABCD[1]_TYPE, [text]: alphabets, time: 1/12/2010, author: xyz, best_chapter: 10.5}

而且我需要为每个字符串添加双引号,使其看起来像一个真正的 Json:

{"cid": {"ABCD[1]_TYPE", "[text]": "alphabets", "time": "1/12/2010", "author": "xyz", "best_chapter": "10.5"}}

我已经这样做了:

val jsonString = str.replaceAll("(\\w+/.)", "\"$1\"")

我的正则表达式失败,它像这样逃脱方括号:

{"cid": {"ABCD"["1"]"_TYPE", [""text""]: "alphabets", "time": "1/12/2010", "author": "xyz", "best_chapter": "10.5"}}

任何如何制作双引号的想法都包括在内。

标签: regexscalaapache-spark-1.6

解决方案


与其尝试描述应该引用的所有内容并转义所有特殊字符,不如描述应该引用的内容可能更容易。

str.replaceAll("([^\\s:,{}]+)", "\"$1\"")

推荐阅读