我有几个字符串,其中单词用冒号分隔。我需要删除最后一个冒号和最后一个冒号之后的所有内容。我找到了只有以其他方式工作的解决方案,之前删除所有内容并保留最后一个冒号和最后一个字。像这样:
$link = trim(substr($link, strrpos($link, ':') + 1));
字符串看起来像这样:
Dashboard:Default:default
Construction:List:workflow
Construction:List:default
答案 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
答案 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)
我希望这会对您有所帮助,我们正在使用explode
,unset
和implode
解决方案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;