我有一个变量$ collectors,它可以包含一到七个以分号分隔的人名。如果字符串包含一个名称,那么它将跟随七个分号,如果它包含两个名称,则为5个分号。如何删除字符串末尾的无关分号,同时留下将实际人名分开的位置?
$ collectors中保存的数据示例 John Doe ;;;;;;; John Doe; Jane Doe ;;;;;; John Doe; Jane Doe; Bob Smith ;;;;; 等
答案 0 :(得分:3)
如果这些名称可以位于CSV字符串中的每个位置,则可以使用preg_replace()
:
$strippedSemicolonStr = preg_replace('/;+/', ';', $str);
请注意,使用此解决方案,可能会有一个以;
结尾的字符串,因为它只会删除重复的分号。
如果所有名称都在CSV字符串的开头(没有间隙),您可以使用rtrim()
:
$strippedSemicolonStr = rtrim($str, ';');
使用此解决方案,您将在字符串末尾放置任何分号。因此,新字符串不会以;
结尾。
答案 1 :(得分:0)
您可以使用多种语言的trim功能从字符串的开头和结尾删除指定的字符。
$string = 'John Doe;;;;;;;';
$string = trim ( $string, [";"] );