[英]Javascript regex to replace last digit occurence between square brackets?
[英]JS Regex match last occurence between brackets
我正在嘗試從此文本中檢索最后一個括號之間的數據:
"Some text [Rewex] [1246] • 3/21/21 9PM • [**3646**]"
和
let id = text.match(/(\[)(?!.*\1)(.*)\]/g);
我可以檢索[3646]但我只想要3646 (括號內的數據)
有沒有辦法用正則表達式來做到這一點,還是我必須用replace()來做到這一點?
匹配最后一組尖括號中最后出現的字符的正則表達式:
/(?![^\[]*\[)[^\]]+(?=\])/
https://regex101.com/r/04ZFZo/1
簡而言之,將其分解:
(?![^\[]*\[) Lookahead and greedily consume everything that is not an [ till a final [
[^\]]+ (Get ID) Everything that is not an ] one or more characters
(?=\]) till the first ] occurrence (ignored from matching).
上面將返回3646
之類的字符串
一些文本 [Rewex] [1246] • 21 年 3 月 21 日晚上 9 點 • [ 3646 ] foo bar baz
相反,如果您想同時獲得1246
和3646
,那就更簡單https://regex101.com/r/HpfziG/1 :
/(?<=\[)\d+(?=\])/g
其中\d+
代表:一個或多個數字。
如果它是混合字符內容 - 使用[^\]]+
(不是 ] 一次或多次),例如:
/(?<=\[)[^\]]+(?=\])/g
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.