[英]Replace second last occurrence of a char(dot) in an email string using regex
[英]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.