替换嵌套JSON我有一个Scala的方法,该方法将给出一个字符串,象这样:字符串Scala中
"blah blah sediejdri \"foos\": {\"fizz\": \"buzz\"}, odedrfj49 blah"
我需要在它外面使用纯Java/Scala中剥去“FOOS JSON”(无外部库)。也就是说,找到子匹配模式:
\"foos\" : {ANYTHING},
...并剥离出来,使输入字符串现在是:
"blah blah sediejdri odedrfj49 blah"
令牌搜索将始终是\"foos\"
,但JSON花括号内的内容将始终不同。我最好的尝试是:
// Ex: "blah \"foos\": { flim flam }, blah blah" ==> "blah blah blah", etc.
def stripFoosJson(var : toClean : String) : String = {
val regex = ".*\"foos\" {.*},.*"
toClean.replaceAll(regex, "")
}
但是,我的正则表达式显然不正确。任何人都可以发现我要去哪里?
这是不容易指定'ANYTHING'用正则表达式,因为它可以包含有括号也嵌套的对象......我会用[此去答案](http://stackoverflow.com/questions/12752225/how-do-i-find-the-position-of-matching-parentheses-or-braces-in-a-given-piece-of),找到匹配大括号和子字符串。 –
Thanks @ insan-e(+1) - 你是对的,但是在我的特殊情况下,我*知道*我将不会在花括号内嵌入任何嵌套的JSON。 – smeeb