删除字符串PHP中的最后重复单词出现

时间:2011-11-14 23:23:48

标签: php

我需要删除字符串中的最后重复单词,例如:

最后重复的字词是:all/

字符串输入示例:

  • item1/item2/all/
  • item1/item2/all/all/all/
  • item1/item2/all/all/all/all/

结果应始终为:item1/item2/

2 个答案:

答案 0 :(得分:5)

如果这些“单词”总是用斜杠分隔,那么它就像带有反向引用的正则表达式一样简单:

$str = preg_replace('#\b(\w+/)\1+$#', '', $str);
           //  here \b could be written as (?<=/) more exactly

或者如果all是要查找的固定字符串:

$str = preg_replace('#/(all/)+$#', '/', $str);

答案 1 :(得分:2)

我假设你想要删除最后一个单词,以及任何重复单词

$list = explode('/', $str);
if(end($list) == '') array_pop($list); // remove empty entry on end
$last = array_pop($list);
while(end($list) == $last) array_pop($list);
$str = implode('/', $list); // put back together