regex 如何匹配以```括起来但结尾```是可选的内容?

vojdkbi0  于 2023-05-30  发布在  其他
关注(0)|答案(1)|浏览(137)

我现在有了这个模式

const pattern = /```([^`]+?)```/gm
const data = "here is an exmaple```code1```here is an exmaple```code2```here is an exmaple```code3"

它将匹配code1和code2,但 * 不匹配code3。换句话说,它将匹配完全封闭的。我也希望code3匹配。我认为这里有一个重要的规则是部分封闭的(如code3)永远不会在中间,它只会在数据流的末尾。
怎么做?
PS:我知道我可以用这个...

```([^`]+?)```|```([^`]+?)$
polhcujo

polhcujo1#

符合您要求的一种模式是

/```([^`]+)(?:```)?/g
const regex = /```([^`]+)(?:```)?/g

const str = "here is an exmaple```code1```here is an exmaple```code2```here is an exmaple```code3";

console.log(str.match(regex));

输出将为

[
  "```code1```",
  "```code2```",
  "```code3"
]

相关问题