Regex-从第二次出现到最后一次出现

Regex - Find from second occurrence till second last occurrence

本文关键字:最后一次 Regex- 第二次      更新时间:2024-03-26

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

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

我需要匹配并删除从第二次出现[quote=Person2]到倒数第二次[/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(...)的赋值来存储修改后的字符串。

使用此模式('[quote=([^']]+)'])['s'S]+(?='s'2)并替换为$1 Demo