在PHP中从字符串中删除多余的分号

时间:2014-10-02 11:14:36

标签: php filter strip

我有一个变量$ collectors,它可以包含一到七个以分号分隔的人名。如果字符串包含一个名称,那么它将跟随七个分号,如果它包含两个名称,则为5个分号。如何删除字符串末尾的无关分号,同时留下将实际人名分开的位置?

$ collectors中保存的数据示例     John Doe ;;;;;;;     John Doe; Jane Doe ;;;;;;     John Doe; Jane Doe; Bob Smith ;;;;;     等

2 个答案:

答案 0 :(得分:3)

如果这些名称可以位于CSV字符串中的每个位置,则可以使用preg_replace()

$strippedSemicolonStr = preg_replace('/;+/', ';', $str);

请注意,使用此解决方案,可能会有一个以;结尾的字符串,因为它只会删除重复的分号。

如果所有名称都在CSV字符串的开头(没有间隙),您可以使用rtrim()

$strippedSemicolonStr = rtrim($str, ';');

使用此解决方案,您将在字符串末尾放置任何分号。因此,新字符串不会以;结尾。

答案 1 :(得分:0)

您可以使用多种语言的trim功能从字符串的开头和结尾删除指定的字符。

$string = 'John Doe;;;;;;;';
$string = trim ( $string, [";"] );

http://php.net/manual/de/function.trim.php