Javascript 正则表达式-从第二次出现到最后第二次出现的查找

Javascript 正则表达式-从第二次出现到最后第二次出现的查找,javascript,jquery,html,regex,Javascript,Jquery,Html,Regex,我试图用Javascript的.match()或.replace()函数匹配第一次和最后一次出现之间的所有内容。因此,我将使用regex查找需要删除的内容。许多行和其他字符的内容会有所不同,但这只是一个示例 [quote=Person 1] [quote=Person 2] [quote=Person 3] Person 3 [/quote] Person 2 [/quote] Person 1 [/quote] 我需要匹配并删除从第二次出现到倒数第二次出现的所有内容 话虽如此,它最终应该输出

我试图用Javascript的.match()或.replace()函数匹配第一次和最后一次出现之间的所有内容。因此,我将使用regex查找需要删除的内容。许多行和其他字符的内容会有所不同,但这只是一个示例

[quote=Person 1]
[quote=Person 2]
[quote=Person 3]
Person 3
[/quote]
Person 2
[/quote]
Person 1
[/quote]
我需要匹配并删除从第二次出现到倒数第二次出现的所有内容

话虽如此,它最终应该输出以下内容:

[quote=Person 1]
Person 1
[/quote]
您可以像这样匹配报价标签

\[quote(.*?)\] 
\[\/quote\]
最后的引号标签是这样的

\[quote(.*?)\] 
\[\/quote\]
现在开始(其中x是上面的示例文本):

这将产生:

[quote=Person 1]
Person 1
[/quote]

请注意,
x.replace()
不会更改
x
的内容——您必须执行类似
var newx=x.replace(…)的赋值
x=x.replace(…)
来存储修改后的字符串。

使用此模式
(\[quote=([^\]]+)[\s\s]+(?=\s\2)
并替换为
$1
str.split('[quote=Person 2]').shift()+str.split('[/quote]')).filter(函数n){return n.trim().length}.pop()。举个例子:你在和我说话吗?如果是这样的话,字符串是不可变的->@LemvigKiggeren——它就像我写的那样工作
.replace()
不执行赋值。因此,如果您执行
x.replace(…)
,然后回显
x
,您将获得原始值。我已经调整了我的答案来澄清。