【问题标题】:How to get before after comma without using PHP explode() [duplicate]如何在不使用 PHP explode() 的情况下在逗号之后获取 [重复]
【发布时间】:2020-07-23 22:35:19
【问题描述】:

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

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

【问题讨论】:

  • 听起来像家庭作业.. stristr 第三个参数为真,3v4l.org/J55Le
  • 谢谢劳伦斯,但我也在这里得到了comma! ` echo stristr($data, ',', false);`
  • ltrim 吧,请问可信赖的爆炸或正则表达式有什么问题?

标签: php


【解决方案1】:

您可以使用这一行正则表达式代码获取$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(),因为它比在$data 字符串上多次运行preg_replace() 更高效、更高效。

【讨论】:

    猜你喜欢
    • 2013-09-10
    • 1970-01-01
    • 2022-01-06
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    相关资源
    最近更新 更多