为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式删除选择性字符串

正则表达式删除选择性字符串

慕斯709654 2023-08-22 16:01:32
希望删除 json 字符串之间的特定字符串:例如我的 Json 字符串是:{"tableName":"avzConf","rows":[{"Comp":"mster","Conf": "[{\"name\": \"state\", \"dispN\": \"c_d_test\", \"\": {\"updated_at\": \"2020-09-16T06:33:07.684504Z\", \"updated_by\": \"Abc_xyz<abc_xyz@uuvvww.com>\"}}, {\"name\": \"stClu\", \"dNme\": \"tab(s) Updatedd\", \"\": {\"updated_at\": \"2020-09-21T10:17:48.307874Z\", \"updated_by\": \"Def Ghi<def_ghi@uuvvww.com>\"}}}]}想要删除: \"\": {\"updated_at\": \"2020-09-16T06:33:07.684504Z\", \"updated_by\": \"Abc_xyz<abc_xyz@uuvvww.com>\"}预期输出:{"tableName":"avzConf","rows":[{"Comp":"mster","Conf": "[{\"name\": \"state\", \"dispN\": \"c_d_test\"}, {\"name\": \"stClu\", \"dNme\": \"tab(s) Updatedd\"}}]}我尝试过 ( \\"\\": {\\"updated_\w+)(.*)(>\\")在我的代码中使用:import reline = re.sub(r"updated_\w+(.*)(.com>)", '', json_str)但它也会选择行之间的行,因为出现了 2 次“”:{“updated_at\ 和”updated_by”并留下特殊字符“”:{“”}怎样才能彻底去除呢\"\": {\"updated_at\": \"2020-09-16T06:33:07.684504Z\", \"updated_by\": \"Abc_xyz<abc_xyz@uuvvww.com>\"}?
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

尝试这个:

\{\"updated_at[^{]+\}

通过允许除中间出现一次或多次之外的任何字符,从相关的开头{到相关的结尾进行匹配}{


查看完整回答
反对 回复 2023-08-22
?
GCT1015

TA贡献1827条经验 获得超4个赞

使用 python json 字符串,我可以删除那些不需要的字段,如下所示:这已经完全删除了不需要的空键并将其替换为 },以完美地完成 json。


regex as \,\s\\\"\\\":\s\{\\\"updated_at[^{]+\}[^\]]


json_str = str({"tableName":"avzConf","rows":[{"Comp":"mster","Conf": "[{"name": "state", "dispN": "c_d_test", "": {"updated_at": "2020-09-16T06:33:07.684504Z", "updated_by": "Abc_xyzabc_xyz@uuvvww.com"}}, {"name": "stClu", "dNme": "tab(s) Updatedd", "": {"updated_at": "2020-09-21T10:17:48.307874Z", "updated_by": "Def Ghidef_ghi@uuvvww.com"}} }] })


import re

line = re.sub(r"\,\s\\\"\\\":\s\{\\\"updated_at[^{]+\}",'},', json_str)


查看完整回答
反对 回复 2023-08-22
  • 2 回答
  • 0 关注
  • 1545 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信