【发布时间】:2019-09-29 05:10:42
【问题描述】:
正则表达式处理涉及双引号的给定输入模式
输入:
{
"adad":""Dip. Clinico E Di Ricerca Clinica-u.o.c.i Divisione ,gg677"","asd":"","dadd":"13213","Finance":[{"Financial_Contact_End_Date":""},{"Financial_Monthly_End_Date":""}]
}
我已经尝试过这个正则表达式来处理提供的输入。
a.replace("\"\"","\"").replaceAll("(:\",)",":\"\",").replaceAll("(:\"})", ":\"\"}")
a.replace("\"\"","\"").replaceAll("(:\",)",":\"\",").replaceAll("(:\"})", ":\"\"}")
预期:
{
"adad":"Dip. Clinico E Di Ricerca Clinica-u.o.c.i Divisione ,gg677","asd":"","dadd":"13213","Finance":[{"Financial_Contact_End_Date":""},{"Financial_Monthly_End_Date":""}]
}
我该如何解决这个问题?
【问题讨论】:
-
那不是json开头的。
-
考虑使用
JSON.parse()正确解析 JSON。如果输入无效,可能有助于与其创建者一起使其有效,这样您就可以简化代码并确保其可靠性。有关正则表达式的一些提示(和限制),请参阅this blog post。 -
唯一的问题是你不能只用
"替换"",因为它可能是一个正常值:"",所以,你必须使用解析这个结构的规则来限定匹配.先列出规则,然后是正则表达式。
标签: javascript regex regex-negation regex-greedy