首页 > 解决方案 > 如何在不使用 PHP explode() 的情况下在逗号之后获取

问题描述

我知道我可以按照以下方式执行此操作,但是是否有一种单行方法,例如使用正则表达式将逗号之前的所有内容作为 $first 并将逗号之后的所有内容作为 $second?

$data = "m-12,s-52";
$arr = explode(",", $data);
$first = $arr[0];
$second = $arr[1];

标签: php

解决方案


您可以获得$first$second使用这一行正则表达式代码

$data = "m-12,s-52,s-52";
$beforefirstcomma = preg_replace("/,(.+)/", "", $data);
$afterlastcomma = preg_replace("/(.+),/", "", $data);
$afterfirstcomma = preg_replace("/^[^,]+,+/", "", $data);

// outputs
echo $beforefirstcomma; // m-12
echo "<br>";
echo $afterlastcomma; // s-52
echo "<br>";
echo $afterfirstcomma; // s-52,s-52

最后
一点 我仍然推荐使用explode(),因为它比在字符串上运行preg_replace()多次更高效和高效。$data


推荐阅读