正则表达式在字符串上查找最后一个标记

jpa*_*luz 1 javascript regex lookahead

我想知道是否有办法解决这个问题

var string = "foo::bar"
Run Code Online (Sandbox Code Playgroud)

获取字符串的最后一部分:"bar"使用正则表达式.

我试图做好预测,但却无法掌握它们做到这一点.

-

UPDATE

也许一些例子会使问题更加清晰.

var st1 = "foo::bar::0"
match should be 0

var st2 = "foo::bar::0-3aab"
match should be 0-3aab

var st3 = "foo"
no match should be found
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 8

您可以使用否定前瞻:

/::(?!.*::)(.*)$/
Run Code Online (Sandbox Code Playgroud)

结果将在捕获中.

另一种方法:

/^.*::(.*)$/
Run Code Online (Sandbox Code Playgroud)

这应该工作,因为.*匹配贪婪,所以::将匹配该字符串的最后一次出现.