簡體   English   中英

正則表達式 - 從第二次出現到最后一次出現

[英]Regex - Find from second occurrence till second last occurrence

我正在嘗試使用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(...);類的賦值var newx = x.replace(...); 或者x = x.replace(...)來存儲修改后的字符串。

使用此模式(\\[quote=([^\\]]+)\\])[\\s\\S]+(?=\\s\\2)並替換為$1 演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM