我所说的数值是指以下 JSON 中不应包含在双引号内的值。我已经为此编写了一个一次性解决方法,但是可以重用的通用 REReplace() 将是一个极好的帮助。
所以这个
{
"collapse_key" : "demo",
"delay_while_idle" : true,
"registration_ids" : ["xyz"],
"data" : {
"key1" : "value1",
"key2" : "value2",
},
"time_to_live" : "3"
},
变成这样:
{
"collapse_key" : "demo",
"delay_while_idle" : true,
"registration_ids" : ["xyz"],
"data" : {
"key1" : "value1",
"key2" : "value2",
},
"time_to_live" : 3
},
最佳答案
这应该有效:
s = reReplace(s, '"([\d.-]+)"', "\1", "ALL")
(其中 s 是您的 JSON 字符串)
- "匹配双引号
- () 表示“记住这一点,以便我稍后可以将其引用为\1
- \d 表示“数字”
- 。表示小数点
- - 表示减号
- +表示其中一个或多个
请注意,这将匹配非法“数字”,如“..0-1”,但在您的要求范围内,这可能没问题。人们可以对正则表达式进行卷积以使其更加精确,但这样做可能没有任何好处。如果存在误报风险,请告诉我,我可以修改。
或者我想彼得无论如何都会给出更好的答案;-)
关于regex - 用于在 ColdFusion 9 中删除字符串中数值周围的引号的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13248213/