gpt4 book ai didi

javascript - 正则表达式查找 [code] 标签的内部内容

转载 作者:行者123 更新时间:2023-11-30 12:22:06 25 4
gpt4 key购买 nike

如果我有这样的字符串值:

[code]
hi
[/code]

我可以使用这个正则表达式来获取标签和中间内容:

/(?:(\[code\]))([\s\S]*)(?:(\[\/code\]))/gi

但是如果我有一个包含多个 [code] 标签集的字符串值,那么它会作为单个匹配项而不是多个匹配项返回:

[code]
hi
[/code]

[code]
hello
[/code]

我正在通过 text.replace 运行 RegEx 来解析中间内容,例如:

text.replace(re, function(match, open_tag, middle, close_tag) {
//do stuff here
return open_tag + middle + close_tag;
});

但就像我说的那样,并不是有两个独立的代码集,而是一个单独的代码集,这很可能是我使用 \S 来匹配所有内容。我该如何正确解析它?

快速 jsfiddle:http://jsfiddle.net/rutsk28L/

最佳答案

简单地使用一个非贪婪的变体:

/(?:(\[code\]))([\s\S]*?)(?:(\[\/code\]))/gi

regex101 demo

不贪婪的统一器 *? 统一零个或多个,但尽可能少。

您还可以省略括号中的 [code] block 的捕获:

/\[code\]([\s\S]*?)\[\/code\]/gi

regex101 demo

使正则表达式更短一些,更易读。

关于javascript - 正则表达式查找 [code] 标签的内部内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30650661/

25 4 0