我很抱歉是一个正则表达式的新手,但我有一个类似Json的字符串:
{
foo:foostring,
bar:barstring
}
我需要在每个字符串中添加双引号,使其看起来像真正的Json
{
"foo":"foostring",
"bar":"barstring"
}
我已经这样做了:
val jsonString = oldString.replaceAll("(\\w+)", "\"$1\"")
它有效!问题是,这些“foostring”和“barstrings”是自动生成的,有时它们包含“ - ”。当发生这种情况时,我的正则表达式失败并且它会像这样逃脱连字符:
{
"foo":"foo"-"string",
"bar":"bar"-"string"
}
我不知道如何使doble引号包含“ - ”符号。
这里有任何帮助吗?
答案 0 :(得分:3)
只需与[...]
和\w
的合并课程-
匹配,但请确保连字符不会出现在对正则表达式具有特殊含义的位置(例如范围{ {1}})。
例如:
A-Z
打印出来:
val oldString = """{
foo:foostring,
bar:barstring,
baz:baz-string
}"""
val jsonString = oldString.replaceAll("([\\w-]+)", "\"$1\"")
println(jsonString)