正则表达式如何匹配最后一次出现后的所有内容,但不包括匹配的字符

时间:2011-07-12 21:19:45

标签: php regex

我有一个字符串,例如:

black-guitar-12-strings-7584

我试图匹配最后的数字集(不总是4个长度)。

到目前为止,我有:

(-)[^-]*$

哪个匹配最后一部分,但我也不想包括最后一个连字符。

有什么想法吗?感谢。

4 个答案:

答案 0 :(得分:6)

尝试以下模式:\d+$[0-9]+$。它匹配最后的数字序列。

答案 1 :(得分:4)

只需省略它就可以了:[^-]+$

对于更复杂的问题,那么您也可以查看lookahead / lookbehind,但这里没有必要。

答案 2 :(得分:2)

如果你想匹配最后一个“ - ”之后的所有内容,这样就可以了:

[^-]*$

答案 3 :(得分:0)

(\d+)$

应该有效。如果你不仅仅是数字,你可以使用像

这样的东西
-(.+?)$

我添加了捕获因为我认为这就是你想要的。它使用非贪心量词,它将与最小值相匹配。