【发布时间】:2022-01-13 08:42:36
【问题描述】:
我想清理以逗号分隔的标签列表以删除空标签和多余的空格。我想出了
$str='first , second ,, third, ,fourth suffix';
echo preg_replace('#[,]{2,}#',',',preg_replace('#\s*,+\s*#',',',preg_replace('#\s+#s',' ',$str)));
到目前为止效果很好,但是否可以一次替换?
【问题讨论】:
-
为什么要使用正则表达式?使用
split()、trim()和array_filter()会更容易。 -
你想要的确切输出是什么?
-
为什么要删除空元素?大概这代表了一些东西,而且它恰好是空白的。删除它会丢失信息。
-
@Barmar 因为目的是清理字符串,而不是提取标签。然后,我必须添加另一个步骤
implode。我发现正则表达式替换更快更容易。 -
@TimBiegeleisen 预期的输出正是上面的回声。系统工作正常,我只是想尽量减少进程数。
标签: php regex preg-replace