一尘不染

正则表达式收集最后一个/之后的所有内容

php

我是新来的正则表达式,并且想知道如何用短语来表示最后一个之后的所有东西/

我正在提取Google GData使用的ID。

我的示例字符串是

http://spreadsheets.google.com/feeds/spreadsheets/p1f3JYcCu_cb0i0JYuCu123

ID在哪里: p1f3JYcCu_cb0i0JYuCu123

哦,我在用PHP。


阅读 1659

收藏
2020-05-29

共1个答案

一尘不染

这至少匹配以下项之一(非斜杠),然后是字符串的结尾:

[^/]+$

笔记:

  • 没有理由,因为它不需要任何组-结果进入组0(匹配项本身)。
  • 使用+(而不是*),以便如果最后一个字符是斜杠,则它不匹配(而不是匹配空字符串)。

但是, 最可能更快,更简单的解决方案 是使用您语言的内置字符串列表处理功能-即ListLast( Text , '/' )等效功能。

对于PHP,最接近的函数是strrchr,其工作方式如下:

strrchr( Text , '/' )

这包括结果中的斜杠-
根据下面的Teddy的注释,您可以使用substr删除斜杠:

substr( strrchr( Text, '/' ), 1 );
2020-05-29