一个API响应的JSON输出达到了字符限制,因此我需要将字符的倒数第二次出现之后的所有内容替换为右括号,以格式化API响应。
字符串示例:
{"date": "2004", "day": 0, "count": 0, "stage": "arst"}, {"date": "2004", "day": 1, "count": 0, "stage": "oien"}, {"date": "2005
所需输出:
{"date": "2004", "day": 0, "count": 0, "stage": "arst"}
要删除最后一次出现的}之后的所有字符,我运行以下命令:
regexp_replace(response, '[^}]+$', ']}]}')
在Redshift SQL语句中,我使用regexp_replace
函数三次以获得所需的输出:
when RIGHT(response, 5) != '}]}]}' then regexp_replace(regexp_replace(regexp_replace(response, '[^}]+$', ''), '[^{]+$', ''), '[^}]+$', ']}]}')
如何在一个正则表达式中匹配倒数第二个模式?
1条答案
按热度按时间pbpqsu0x1#
1.(.})捕获到倒数第二个之前的所有内容。
1.\s,\s* 匹配逗号和周围的任何空格。
1.({[^}]+})捕获倒数第二个和最后一个之间的内容。