使用什么正则表达式用两个子字符串之间的换行符替换某些字符串?

时间:2018-09-10 18:38:41

标签: regex

使用什么正则表达式替换两个字符串之间的文本(但文本也有换行符)?基本上,我该如何替换所有出现的情况:

            "points": [
              {
                "id": 1,
                "x": 15500,
                "y": 3900,
                "state": 1
              }
            ]

与此:

            "points": []

2 个答案:

答案 0 :(得分:1)

/"points": \[([^\]]*)\]/gm将捕获第1组中points的内容,但是除非您的所有输入与您的示例完全相同,否则这很容易中断。例如,任何带有数组的东西都会使事情复杂化:

"points": [
  {
    "id": 1,
    "x": 15500,
    "y": 3900,
    "states": [1,2,3]
   }
 ]

由于这是JSON,因此我强烈建议您使用JSON库来处理此数据,而不是尝试使用正则表达式将其处理为纯文本。 JSON与XML和HTML相似,它不是一种正则语言,因此常规意义上的正则表达式无法成功地对其进行操作(即使它可以在这种非常特殊的情况下使用)。

JSON是完成此任务的正确工具。 https://weblogs.asp.net/alex_papadimoulis/408925

答案 1 :(得分:0)

\[[\s\S]*\]

$1

[\s\S]找不到空格,没有空格。一些正则表达式引擎无法与.*一起使用,因此您可以使用[\s\S]作为.

的解决方法

screenshot regex101