Javascript RegExp:搜索用特定字符或字符串包装的所有内容

问题描述

我正在写博客并使用降价语言来呈现输入的内容。现在,我尝试过滤 HTML 标签代码块(用三重反引号标记)之外的所有内容,并希望替换它们。
但是,我当前的 RegExp 模式无法正常工作,考虑到我是 RegExp 的新手,我找不到我的问题,这是我使用的模式:

/```(.*)```/g

这很好用,如果我想剥离每个匹配项,但是当我想拆分文本时,根据此模式,JavaScript 只是在寻找三重反引号,而不是整个模式。

编辑:
这是我的代码,我使用该模式来拆分从文本字段获得的文本:

function preformatInput(text){
    let noCode = text.split(/```(.*)```/g);
    let indizes = [];
    let length = [];
    for(let i = 0; i<noCode.length; i++){
        // indizes.push(text.find(i));
        if(i>0)indizes.push(text.indexOf(noCode[i],text.indexOf(noCode[i-1])));
        else indizes.push(text.indexOf(noCode[i]));

        length.push(noCode[i].length);
    }
    for(let i = 0; i<noCode.length; i++){
        noCode[i] = stripHTML(noCode[i]);
    }
    console.log(indizes);
    console.log(length);
}

解决方法

/```[^```]+```/g 不起作用,该表达式的工作方式与 /```[^`]+```/g 相同,并且禁止单/双 '`'

使用

/```[\s\S]*?```/g

说明

--------------------------------------------------------------------------------
  ```                      '```'
--------------------------------------------------------------------------------
  [\s\S]*?                 any character of: whitespace (\n,\r,\t,\f,and " "),non-whitespace (all but \n,and " ") (0 or more times
                           (matching the least amount possible))
--------------------------------------------------------------------------------
  ```                      '```'
,

解决了问题:
我将 RegExp 模式更改为以下内容:/```[^```]+```/g 并且它起作用了。