【问题标题】:Search and replace JSON multiline using regex in VSCode在 VSCode 中使用正则表达式搜索和替换 JSON 多行
【发布时间】:2023-03-02 21:28:02
【问题描述】:

我有一个很长的 JSON 模式。使用VSCode,需要将partnerName类型替换为string, null(出现20多次,下面的sn-p才出现1次)。

如何搜索和替换整个 partnerName 条目的多行?

从其他question,我尝试使用正则表达式[\n\s]+(.*\n)+ "partnerName": {(.*\n)+"type": "null"(.*\n)+}

但还是不匹配。

搜索:

"partnerName": {
          "type": "null"
        },

替换为:

"partnerName": {
          "type": "string, null"
        },

片段示例:

{
  "type": "object",
  "properties": {
    "node": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "frequency": {
          "type": "string"
        },
        "maxCount": {
          "type": "integer"
        },
        "points": {
          "type": "integer"
        },
        "startAt": {
          "type": "string"
        },
        "endAt": {
          "type": "string"
        },
        "partnerName": {
          "type": "null"
        },
        "action": {
          "type": "null"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "type",
        "frequency",
        "maxCount",
        "points",
        "startAt",
        "endAt",
        "partnerName",
        "action"
      ]
    }
  },
  "required": [
    "node"
  ]
},

【问题讨论】:

  • 您确实应该解析 json,然后设置您想要的值,但如果您必须使用正则表达式,请尝试:(partnerName".*\n\s*"type":\s*)"null"
  • @Mark 不确定解析是什么意思,但正则表达式有效:) 非常感谢!如果您添加为答案,我会将其标记为正确答案
  • 你在用javascript和nodejs吗?
  • 我是 ios 开发人员,每天使用 swift。但是对于这个模式,我正在使用 ruby​​ (cucumber) 编写一个 rest api 合同测试。所以,它只是使用文本编辑器进行搜索和替换:)

标签: visual-studio-code


【解决方案1】:

试试这个正则表达式:

(partnerName".*\n\s*"type":\s*)"null"  

并替换为:

$1"string, null"

【讨论】:

  • 这里的 $1 指的是什么?这是\s* 上的第二个正则表达式吗?
  • $1 是第一个捕获组 `(partnerName"."\n\s*"type":\s*)
  • 这在这个特定的实例中有效,但是有什么办法可以得到 . (DOT) 来匹配换行符?
猜你喜欢
  • 2019-11-03
  • 1970-01-01
  • 1970-01-01
  • 2013-05-18
  • 1970-01-01
  • 2013-06-14
  • 2019-09-04
  • 1970-01-01
相关资源
最近更新 更多