PHP删除字符串最后一个冒号后的所有内容

时间:2017-05-05 07:12:31

标签: php regex

我有几个字符串,其中单词用冒号分隔。我需要删除最后一个冒号和最后一个冒号之后的所有内容。我找到了只有以其他方式工作的解决方案,之前删除所有内容并保留最后一个冒号和最后一个字。像这样:

$link = trim(substr($link, strrpos($link, ':') + 1));

字符串看起来像这样:

Dashboard:Default:default
Construction:List:workflow
Construction:List:default

6 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式匹配最后一个冒号后的所有文本(包括最后一个冒号):

/:(\w)*$/
  • :寻找冒号(:)
  • (\w)*匹配包含任意数量字符的文字
  • $表示字符串结尾

演示:https://regex101.com/r/7eX8SS/2/

PHP:

$link = 'Construction:List:default';
$pattern = '/:(\w)*$/';
echo preg_replace($pattern, '', $link);
// Output: Construction:List

演示:https://ideone.com/UhRcaB

答案 1 :(得分:1)

$str = preg_replace("/:([^:]*)$/m", "", $str);

答案 2 :(得分:1)

@ HS1993你也可以通过substr()和strrpos实现它,substr()将提取字符串所需的部分,而strrpos()将找到最后一次出现的":"像:

<script async="async"> $('.resident-admin-tabs ul li').click(function () { $('.quickset-tabs ul .litab:first-child').addClass('current'); }); function ActiveTab(evt) { $('.litab').removeClass('current'); console.log(evt); $(evt).addClass('current') }; </script>
  

输出:仪表板:默认

答案 3 :(得分:0)

我希望这会对您有所帮助,我们正在使用explodeunsetimplode

Try this code snippet here

解决方案1:

<?php
ini_set('display_errors', 1);
$string='Dashboard:Default:default';
$result=explode(":", $string);
unset($result[count($result)-1]);
echo $result=implode(":",$result);

解决方案2:

<?php
ini_set('display_errors', 1);
$string='Dashboard:Default:default';
echo substr_replace($string,"",strrpos($string, ':'));

<强>输出: Dashboard:Default

答案 4 :(得分:0)

以下是示例代码。也许它会帮助你。

<?php
$string = 'Dashboard:Default:default';
$strParts = explode(':', $string);

array_pop($strParts);

echo implode(':',$strParts);

答案 5 :(得分:-1)

试试这个

$link = 'Dashboard:Default:default';
$link = substr($link, 0, strrpos($link, ':'));

echo $link;