javascript - 正则表达式 - 从第二次出现到倒数第二次出现

标签 javascript jquery html regex

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

[quote=Person 1]
[quote=Person 2]
[quote=Person 3]
Person 3
[/quote]
Person 2
[/quote]
Person 1
[/quote]

我需要匹配并删除从第二次出现 [quote=Person 2] 到倒数第二个 [/quote]

的所有内容

话虽如此,它最终应该输出这个:

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

你可以像这样匹配引号标签

\[quote(.*?)\] 

和这样的结束引号标签

\[\/quote\]

最佳答案

给你(其中 x 是上面的示例文本):

var newx = x.replace(/^(\[quote=(?:(?!\[quote=)[\s\S]*?))\[quote=[\s\S]+\[\/quote\]\s*([\s\S]+?\[\/quote\]\s*)$/g, "$1$2")

这会产生:

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

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

关于javascript - 正则表达式 - 从第二次出现到倒数第二次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20385005/

相关文章:

javascript - HTML5资源存储

javascript - 即使加载了 JavaScript,也无法调用加载的 JavaScript 中的变量

jquery - 根据 div 与父级自动更改底部

javascript - 屏幕左侧的白色垂直线

jquery - 如何在固定布局表中创建可变宽度?

javascript - jQuery 和 HTML 切换按钮

javascript - 有没有更好的方法将子级数组合并为一个数组?

javascript - 从便士更改计算器 - js

javascript - 在 jQuery UI 自动完成中处理输入按键事件

Safari 的 HTML 输入字体系列样式