如何在一个字母单词之间删除空格。例如:
如果可能的话,preg_replace解决方案,抱歉以前没有告诉过。
答案 0 :(得分:3)
以下作品。
$string = "T I G R U S FOO and Drezga d . o . o . New York";
$words = explode(" ", $string);
$output = array();
$temp_word = "";
foreach($words as $word)
{
if (strlen($word) == 1)
{
$temp_word .= $word;
}
else
{
if ($temp_word != "")
{
$output[] = $temp_word;
$temp_word = "";
}
$output[] = $word;
}
}
$output = implode(" ", $output);
echo $output;
输出:“TIGRUS FOO和Drezga d.o.o. New York”
答案 1 :(得分:2)
试试这个PHP代码:
<?php
$str = "T I G R U S FOO and Drezga d . o . o . New York";
$out = preg_replace('~(\b.)\s~', "\\1", $str);
var_dump($out);
?>
<强>输出强>
string(38) "TIGRUSFOO and Drezga d. o. o. New York
<?php
$str = "T I G R U S FOO and Drezga d . o . o . New York N Y";
$s = preg_replace('~((?<=^[^\s])|(?<=\s[^\s]))\s(?=[^\s](\s|$))~', "", $str);
var_dump($s);
?>
<强>输出强>
string(40) "TIGRUS FOO and Drezga d.o.o. New York NY"
&GT;
答案 2 :(得分:0)
不幸的是,这是不可能的。没有简单的方法可以区分单个空格的单词边界与单词的字符之间的无关单个空格。
编辑:撤回 - 我假设替换需要正确处理(即保持单独)实际上是一个字符长的单词。