获取唯一字符串和下划线之间的数值

问题描述 投票:0回答:3

有人可以告诉我如何使用正则表达式从该字符串中获取“123”:

.../groups/123_abc/...

我确信

/团体/

在该字符串中是唯一的。

php regex preg-match text-extraction
3个回答
2
投票

无论是什么语言,您都可以在

"/groups/"
上进行拆分,然后获取第二个元素,该元素位于索引 1 处。

然后在

_
上拆分并获取索引
0
处的第一个元素。


1
投票
(?<=groups\/)\d+

试试这个。查看演示。

https://regex101.com/r/sJ9gM7/57

$re = "/(?<=groups\\/)\\d+/im";
$str = ".../groups/123_abc/...";

preg_match_all($re, $str, $matches);

0
投票

在正则表达式模式中不必要地使用环视可能会导致性能不佳。

此任务不需要任何环视。匹配前导文字

/groups/
子字符串,然后使用
\K
将其从完整字符串匹配中释放,然后匹配所需的数字。

代码:(演示

$str = '.../groups/123_abc/...';

var_export(
    preg_match('#/groups/\K\d+#', $str, $m)
    ? $m[0]
    : null
);

如果您使用

explode()
作为上述脚本的替代方案,则需要使用
第二种技术
从元素 [1] 中删除不需要的字符。

© www.soinside.com 2019 - 2024. All rights reserved.