【发布时间】:2020-06-05 01:19:38
【问题描述】:
我有这个 Json 字符串
{"LAST_NM":""ILLEGIBLE"","FUL_NM":""}
这是我试图在scala中删除Json上面多余的双引号的替换代码。但它不起作用。
replace(":\"\"[a-z]+\"\"",":\"[a-z]+\"")
【问题讨论】:
标签: json regex scala apache-spark apache-spark-sql
我有这个 Json 字符串
{"LAST_NM":""ILLEGIBLE"","FUL_NM":""}
这是我试图在scala中删除Json上面多余的双引号的替换代码。但它不起作用。
replace(":\"\"[a-z]+\"\"",":\"[a-z]+\"")
【问题讨论】:
标签: json regex scala apache-spark apache-spark-sql
您可以通过将正则表达式括在省略号 - (some_regex) 中来使用正则表达式捕获组,然后使用 $x(x=组号)将其替换为结果。例如:
scala> val str = "{\"LAST_NM\":\"\"ILLEGIBLE\"\",\"FULL_NM\":\"\",\"FIRST_NAME\":\"\"NOT_SUPPLIED\"\"}"
str: String = {"LAST_NM":""ILLEGIBLE"","FULL_NM":"","FIRST_NAME":""NOT_SUPPLIED""}
scala> str.replaceAll("\"(\"[^\\,]+?\")\"","$1")
res5: String = {"LAST_NM":"ILLEGIBLE","FULL_NM":"","FIRST_NAME":"NOT_SUPPLIED"}
【讨论】: