删除(包括)角色最后一次出现之前的所有内容

时间:2021-07-07 22:51:59

Please help me get everything after the last occurrence of / using regex. My variables look like this:

在最后一次使用正则表达式后,请帮助我获取所有内容。我的变量看起来像这样:

http://domain.com/folder/subfolder/123456
http://domain.com/folder/subfolder/678901
etc.

and I only need the part after the last / i.e.

我只需要在最后一个之后的部分

123456
678901

Currently I'm using /[^/]*$ but this gives me /123456 & /678901.

目前我正在使用/ [^ /] * $但这给了我/ 123456和/ 678901。

2 个解决方案

#1


You should use brackets in regexp, than you can access by reference \1.

您应该在regexp中使用括号,而不是通过引用\ 1访问。

Example (if length not equals to 6 you should update it.):

示例(如果长度不等于6,则应更新它。):

<?php

preg_match('/\/(\d{6})$/', 'http://domain.com/folder/subfolder/123456', $m);
var_dump($m[1]);

Result:

string(6) "123456"

#2


Just match the last characters in the string before the $ that is not a /:

只需在不是/的$之前匹配字符串中的最后一个字符:

([^\/]+)$

Demo

Or, use \w+ and an anchor:

或者,使用\ w +和锚点:

(\w+)$

Demo

#1


You should use brackets in regexp, than you can access by reference \1.

您应该在regexp中使用括号,而不是通过引用\ 1访问。

Example (if length not equals to 6 you should update it.):

示例(如果长度不等于6,则应更新它。):

<?php

preg_match('/\/(\d{6})$/', 'http://domain.com/folder/subfolder/123456', $m);
var_dump($m[1]);

Result:

string(6) "123456"

#2


Just match the last characters in the string before the $ that is not a /:

只需在不是/的$之前匹配字符串中的最后一个字符:

([^\/]+)$

Demo

Or, use \w+ and an anchor:

或者,使用\ w +和锚点:

(\w+)$

Demo