有人能告诉我如何用正则表达式从这个字符串中得到“123”吗?.../groups/123_abc/...我相信联系我们是唯一的
x3naxklr1#
不管是什么语言,你都可以在"/groups/"上进行分割,然后取第二个元素,它的索引是1。然后在_上进行拆分,取索引为0的第一个元素。
"/groups/"
_
0
sigwle7e2#
(?<=groups\/)\d+
试试这个。看演示。https://regex101.com/r/sJ9gM7/57
$re = "/(?<=groups\\/)\\d+/im"; $str = ".../groups/123_abc/..."; preg_match_all($re, $str, $matches);
kxxlusnw3#
在正则表达式模式中不必要地使用查找查找会导致性能低下。此任务不需要任何查找。匹配前导字符串/groups/ subsrtring,然后使用\K将其从完整字符串匹配中释放出来,然后匹配所需的数字。代码:(Demo)
/groups/
\K
$str = '.../groups/123_abc/...'; var_export( preg_match('#/groups/\K\d+#', $str, $m) ? $m[0] : null );
如果您使用explode()作为上述脚本的替代方案,则需要使用a second technique从元素[1]中删除不需要的字符。
explode()
[1]
3条答案
按热度按时间x3naxklr1#
不管是什么语言,你都可以在
"/groups/"
上进行分割,然后取第二个元素,它的索引是1。然后在
_
上进行拆分,取索引为0
的第一个元素。sigwle7e2#
试试这个。看演示。
https://regex101.com/r/sJ9gM7/57
kxxlusnw3#
在正则表达式模式中不必要地使用查找查找会导致性能低下。
此任务不需要任何查找。匹配前导字符串
/groups/
subsrtring,然后使用\K
将其从完整字符串匹配中释放出来,然后匹配所需的数字。代码:(Demo)
如果您使用
explode()
作为上述脚本的替代方案,则需要使用a second technique从元素[1]
中删除不需要的字符。