Javascript 括号之间上次出现的JS正则表达式匹配

Javascript 括号之间上次出现的JS正则表达式匹配,javascript,regex,Javascript,Regex,我正在尝试检索此文本中最后一个括号之间的数据: "Some text [Rewex] [1246] • 3/21/21 9PM • [**3646**]" 与 我可以检索[3646],但我只想要3646(括号中的数据) 是否有一种方法可以使用正则表达式或必须使用replace()执行此操作?正则表达式可以匹配最后一组尖括号中最后出现的字符: /(?![^\[]*\[)[^\]]+(?=\])/ 简而言之,要分解它: (?![^\[]*\[)向前看,贪婪地消耗一切不是最

我正在尝试检索此文本中最后一个括号之间的数据:

"Some text [Rewex] [1246] • 3/21/21 9PM • [**3646**]"

我可以检索[3646],但我只想要3646(括号中的数据)


是否有一种方法可以使用正则表达式或必须使用replace()执行此操作?

正则表达式可以匹配最后一组尖括号中最后出现的字符:

/(?![^\[]*\[)[^\]]+(?=\])/

简而言之,要分解它:

(?![^\[]*\[)向前看,贪婪地消耗一切不是最终结果的东西[
[^\]]+(获取ID)所有不是一个]字符的内容一个或多个字符
(?=\]),直到第一次]出现(从匹配中忽略)。
对于类似以下字符串,上面将返回
3646

一些文字[Rewex][1246]•3/21/21晚上9点•[3646]foo bar baz

如果您想同时获得
1246
3646
,则更简单:


->总是排到最后吗?或者后面会有文字吗?什么对您的不起作用,因为它似乎存在?您在捕获组2中已经有了价值,但您不需要任何前瞻
^.*\[(\d+)[^\][^\][]*$
感谢您添加解释@帕德,不客气!PS对我最初发布的正则表达式进行了轻微修改。
/(?![^\[]*\[)[^\]]+(?=\])/
/(?<=\[)\d+(?=\])/g
/(?<=\[)[^\]]+(?=\])/g