需要一个正则表达式来消除 ,\r\n 但保持值不变。在记事本++

need a regex to eliminate the ,\r\n but leave values intact. in notepad++

我需要一个可以重新格式化的正则表达式,例如,

[
    0,
    38,
    255,
    255
          ],

进入 [0, 38, 255,255], 但保留所有值不变,不会干扰任何其他带有 ,r\n\ 序列的代码。有可能吗?如果可以,我能得到一些帮助吗?下面是一些示例代码。我已经正确格式化了 [0, 0, 0, 0],但是当值每次都不同时,制作一个有效的正则表达式要困难得多。下面是我的代码示例,是整个代码的一小部分。

      "value": [
0,
38,
255,
255
      ],
      "comment": "bright blue, entrance coupler",
      "connector": true,
      "connector-value": [0, 0, 0, 0]
    },
    {
      "value": [
0,
255,
186,
255
      ],
      "comment": "bright aqua, water coupler",
      "connector": true,
      "connector-value": [0, 0, 0, 0]
    },
    {
      "value": [
32,
32,
32,
255

如果你总是有四个值,你可以这样做:

查找内容:\[\s+(\d+),\s+(\d+),\s+(\d+),\s+(\d+)\s+\]
替换为:[,,,]

试试这个表达式:

(?s)\r?\n\s*(?=(?:(?!\}|\{|\]|\[).)*+(?:\]|$))

并替换为空(或者 space 如果你想要元素 spaced out)

确保 .匹配换行符复选框已打开(但表达式开头的 (?s) 应强制执行此操作)。

使用您的代码段,这个表达式 returns:

  "value": [0,38,255,255],
  "comment": "bright blue, entrance coupler",
  "connector": true,
  "connector-value": [0, 0, 0, 0]
},
{
  "value": [0,255,186,255],
  "comment": "bright aqua, water coupler",
  "connector": true,
  "connector-value": [0, 0, 0, 0]
},
{
  "value": [32,32,32,255

应该这样做:

 ([ \t]+)?(.*)?[\r\n]+

在记事本++中替换为

\s(?=[^\[]*\])

通过 empty string 尝试 this.Replace。查看演示。

https://regex101.com/r/wZ0iA3/3