如何使用preg_match提取字符串中连字符后的最后部分?
提取类URL字符串中最后一个
-后的内容 需求说明
需要从类URL格式的字符串里,提取出最后一个连字符(-)之后的部分,示例如下:
输入示例:
game-when-no-one-at-xhU8c0dLcoins-at-the-desk-1xhz83cexample-example-1391340
期望输出:
xhU8c0dL1xhz83c1391340
问题分析
最初使用的正则表达式preg_match('/.{7}(?=($|\r|\n))/')存在局限性——它固定匹配最后7个字符,但目标内容的长度可能是7或8,无法适配所有情况。
解决方案
使用正则表达式preg_match('/[^-]*$/')即可满足需求:
[^-]*表示匹配任意数量(包括0个)非连字符的字符$表示匹配字符串的结尾
这样就能精准捕获最后一个-之后的所有内容,不管长度是多少。
内容的提问来源于stack exchange,提问作者Dimitrie
相关产品推荐
相关产品推荐

