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

qxsslcnc  于 2023-10-22  发布在  其他
关注(0)|答案(3)|浏览(110)

有人能告诉我如何用正则表达式从这个字符串中得到“123”吗?
.../groups/123_abc/...
我相信
联系我们
是唯一的

x3naxklr

x3naxklr1#

不管是什么语言,你都可以在"/groups/"上进行分割,然后取第二个元素,它的索引是1。
然后在_上进行拆分,取索引为0的第一个元素。

sigwle7e

sigwle7e2#

(?<=groups\/)\d+

试试这个。看演示。
https://regex101.com/r/sJ9gM7/57

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

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

kxxlusnw3#

在正则表达式模式中不必要地使用查找查找会导致性能低下。
此任务不需要任何查找。匹配前导字符串/groups/ subsrtring,然后使用\K将其从完整字符串匹配中释放出来,然后匹配所需的数字。
代码:(Demo

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

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

如果您使用explode()作为上述脚本的替代方案,则需要使用a second technique从元素[1]中删除不需要的字符。

相关问题