【问题标题】:How to remove part of a string after last comma in PHP如何在 PHP 中删除最后一个逗号后的部分字符串
【发布时间】:2020-10-09 13:15:04
【问题描述】:

如何在 PHP 中删除最后一个逗号后的字符串的一部分?

字符串:"this is a post, number 1, date 23, month 04, year 2012"
预期:"this is a post, number 1, date 23, month 04"

【问题讨论】:

标签: php string substring


【解决方案1】:

substrstrrpos 会很有用

$until = substr($string, 0, strrpos($string.",", ","));

注意:根据下面的 cmets 编辑

【讨论】:

  • 笔记:此代码并不总是有效,例如如果字符串中没有逗号。由于没有最后一个逗号,因此不应删除任何内容,但会删除所有内容。
  • 轻松修复末尾缺少逗号:substr($string, 0, strrpos($string.",", ","));
【解决方案2】:

您想要替换最后一个逗号和其余部分,即逗号后跟任何其他字符,直到字符串结束。

这可以表述为一个正则表达式,并且该模式可以通过 preg_replace 替换为一个空字符串:

$until = preg_replace('/,[^,]*$/', '', $string);

这是 mario's answer 的变体,它在字符串中也没有逗号的情况下起作用。

【讨论】:

  • 的确。正则表达式通常更适合,因为它可以立即断言和修改字符串。
【解决方案3】:

在第一步中,分解字符串并删除创建的演示文稿中的最后一部分并分解数组

$tokens = explode(':', $string); // 拆分字符串:
array_pop($tokens); // 去掉最后一个元素
$newString = implode(':', $tokens); // 回绕

【讨论】:

  • 您应该对此添加解释。截至目前,它只是一个代码块。
猜你喜欢
  • 2012-06-07
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
  • 1970-01-01
  • 2017-03-24
  • 1970-01-01
相关资源
最近更新 更多