我需要清理文本字符串,其中每个字母之间都有一个空格,每个空格由3个空格组成,例如:
E X C E P T I O N A L C R E A T I V I T Y A N D A
T A I L O R E D D E S I G N E D G E
如何清理文本,即 - 将每个三维空间转换为单个空格,并删除每个字母之间的空格?
客户端/服务器端解决方案欢迎。
答案 0 :(得分:5)
preg_replace('/(.) /', '\\1', $string);
正则表达式引擎不匹配替换结果的子串,因此它可以正确处理三重空格而无需特殊情况。
答案 1 :(得分:2)
str_replace(array(' ', ' ', '%'), array('%', '', ' '), $text);
只需将%替换为文字中未出现的字符或字符串。
答案 2 :(得分:0)
$input = <<<_EOI_
E X C E P T I O N A L C R E A T I V I T Y A N D A
T A I L O R E D D E S I G N E D G E
_EOI_;
$patterns = array('/(\w) /', '/ {2,}/');
$replaces = array('$1', ' ');
preg_replace($patterns, $replaces, $input);
// output:
// EXCEPTIONAL CREATIVITY AND A
// TAILORED DESIGN EDGE